كيفية تكوين Istio و Prometheus و Grafana للرصد

مقدمة في القدرة على مراقبة Istio باستخدام Prometheus

شبكة خدمات Istio تجتمع شبكة الخدمات Istio مع طبقات التطبيق باستخدام منافذ الجانب. يمكنك تنفيذ سياسات الأمان والشبكة المتقدمة لجميع الاتصالات عبر بنيتكم التحتية باستخدام Istio. 

لكن ميزة أخرى مهمة في Istio هي القدرة على المراقبة. يمكنك استخدام Istio لمراقبة الأداء وسلوك جميع الخدمات الدقيقة في بنيتكم التحتية (انظر الصورة أدناه). إحدى المسؤوليات الرئيسية لمهندسي الموارد الموثوق بهم (SREs) في المؤسسات الكبيرة هي مراقبة المقاييس الذهبية لتطبيقاتهم، مثل استخدام CPU، استخدام الذاكرة، اللافتة، والتنافسية. 

في هذا المقال، سنناقش كيف يمكن لمهندسي الموارد الموثوق بهم الاستفادة من دمج ثلاثة برمجيات مفتوحة المصدر – Istio، Prometheus، وGrafana. بينما Istio هي أشهر برمجيات الخدمة، Prometheus هي البرنامج الأكثر استخدامًا للمراقبة، وGrafana هي أشهر أدوات التصور. 

ملاحظة: تم اختبار الخطوات لـ Istio 1.17.X

شاهد الفيديو عن تكوين Istio، Prometheus، وGrafana

شاهد الفيديو إذا كنت ترغب في اتباع الخطوات من الفيديو:

الخطوة 1: انتقل إلى إضافات Istio وقم بتطبيق ملف YAML لـ Prometheus وGrafana

أولاً، انتقل إلى مجلد الإضافات في دليل Istio باستخدام الأمر. بما أنني أستخدم 1.17.1، فإن المسار بالنسبة لي هو istio-1.17.1/samples/addons

ستلاحظ أن Istio يوفر بالفعل مجموعة قليلة من ملفات YAML لتكوين Grafana, Prometheus, Jaeger, Kiali, إلخ. يمكنك تكوين Prometheus باستخدام الأمر التالي:

Shell

 

kubectl apply -f prometheus.yaml
Shell

 

kubectl apply -f grafana.yaml

تذكر أن هذه الملفات الإضافية YAML تطبق على مساحة الاسم istio-system بشكل افتراضي. 


الخطوة 2: نشر خدمة جديدة وتوجيه البوابة الداخلية لـ Istio

لتجربة نموذج العمل، سنقوم بنشر خدمة httpbin في مساحة اسم مدعومة من Istio. سنقوم بإنشاء كائن من بوابة Istio الداخلية لاستقبال المرور إلى الخدمة من العام. 

سنقوم أيضًا بتوجيه بوابة Istio الداخلية إلى منفذ معين – 7777. 


يجب أن ترى الشاشة التالية على localhost:7777


الخطوة 3: فتح tableau Prometheus و Grafana

يمكنك فتح tableau Prometheus باستخدام الأمر التالي.

Shell

 

istioctl dashboard prometheus
Shell

 

istioctl dashboard grafana

سيتم فتح كل من Grafana و Prometheus في localhost. 


الخطوة 4: إجراء طلبات HTTP من Postman

سنرى كيف تستهلك خدمة httpbin معدل المعالجة أو الذاكرة عندما يكون هناك حمل مرور. سنقوم بإنشاء عدد قليل من الطلبات GET و POST إلى localhost:7777 من تطبيق Postman.


بمجرد إرسال طلبات GET أو POST إلى خدمة httpbin عدة مرات، ستتم استخدام الموارد، ويمكننا رؤيتها في Grafana. ولكن في البداية، نحتاج إلى تكوين المقاييس لخدمة httpbin في Prometheus وGrafana. 

الخطوة 5: تكوين المقاييس في Prometheus

يمكن للمرء اختيار مجموعة من المقاييس المتعلقة بأي موارد Kubernetes مثل خادم الواجهة التطبيقية، التطبيقات، العمليات، envoy، إلخ. سنختار container_memory_working_set_bytes كمقاييس لتكويننا. 

في تطبيق Prometheus، سنختار المساحة الوصول للمسح المقاييس باستخدام المصطلح البحثي التالي: container_memory_working_set_bytes { namespace= "istio-telemetry"} (istio-telemetry هو اسم مساحتنا التي تم تمكين Istio فيها، حيث تم نشر خدمة httpbin)

لاحظ أنه ببساطة بتشغيل هذا، نحصل على الذاكرة لمساحتنا. نظرًا لأننا نريد تحليل استخدام الذاكرة للواحدات النمطية، يمكننا حساب الذاكرة الإجمالية المستهلكة عن طريق جمع استخدام الذاكرة لكل وحدة نمطية مُجمَّعة حسب الوحدة النمطية. الاستعلام التالي سيساعدنا في الحصول على النتيجة المرغوبة: sum(container_memory_working_set_bytes{namespace="istio-telemetry"}) by (pod)


ملاحظة: توفر Prometheus مرونة كبيرة لتصفية، تشريح، وتقطيع بيانات المقياس. كان الفكرة المركزية لهذا المقال هي عرض قدرة Istio على إصدار وإرسال المقاييس إلى Prometheus لجمعها

الخطوة 6: تكوين رسوم بيانية لمقاييس Istio في Grafana

الآن، يمكنك ببساطة استخدام الاستعلام التالي في بروميثيوس sum(container_memory_working_set_bytes{namespace="istio-telemetry"}) by (pod) ورسم رسم بياني بالوقت. كل ما عليك فعله هو إنشاء tableau جديد في جرافانا ولصق الاستعلام في متابع المقاييس. ستقوم جرافانا برسم رسم بياني لسلسلة الزمن. يمكنك تعديل الرسم بأسماء وأسطر أرجوانية وعناوين مناسبة للمشاركة مع الجهات المعنية في فريق العمليات.


هناك عدة طرق للتعديل وتخصيص البيانات وتصور مقاييس بروميثيوس في جرافانا. يمكنك اختيار القيام بجميع التخصيصات بناءً على احتياجات مؤسستك. لقد أجريت بعض التجارب في الفيديو؛ لا تتردد في الاطلاع عليه.

خاتمة

Istio شبكة الخدمة قوية للغاية في توفير القدرة الكاملة على المراقبة عبر البنية التحتية. في هذا المقال، قدمنا مجرد حالة إستخدام بسيطة لتجميع وتصور المقاييس باستخدام Istio، Prometheus، وGrafana. يمكنك إجراء التسجيل وتتبع السجلات والحركة الحقيقية الزمنية باستخدام Istio؛ سنغطي تلك المواضيع في مقالاتنا اللاحقة.

Source:
https://dzone.com/articles/how-to-configure-istio-prometheus-and-grafana-for-monitoring