مشاركة عبر


مراقبة مقاييس وحدة تحكم ingress-nginx في الوظيفة الإضافية لتوجيه التطبيق باستخدام Prometheus في Grafana (معاينة)

تعرض وحدة تحكم ingress-nginx في الوظيفة الإضافية لتوجيه التطبيق العديد من المقاييس للطلبات وعملية nginx ووحدة التحكم التي يمكن أن تكون مفيدة في تحليل أداء التطبيق واستخدامه.

تعرض الوظيفة الإضافية لتوجيه التطبيق نقطة نهاية مقاييس Prometheus في /metrics المنفذ 10254.

هام

تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:

المتطلبات الأساسية

  • نظام مجموعة Azure Kubernetes Service (AKS) مع تمكين الوظيفة الإضافية لتوجيه التطبيق.
  • مثيل Prometheus، مثل خدمة Azure Monitor المدارة ل Prometheus.
  • مثيل Grafana، مثل Azure Managed Grafana.

التحقق من صحة نقطة نهاية المقاييس

للتحقق من صحة المقاييس التي يتم تجميعها، يمكنك إعداد منفذ إعادة توجيه إلى إحدى وحدات التحكم ingress-nginx.

kubectl get pods -n app-routing-system
NAME                            READY   STATUS    RESTARTS   AGE
external-dns-667d54c44b-jmsxm   1/1     Running   0          4d6h
nginx-657bb8cdcf-qllmx          1/1     Running   0          4d6h
nginx-657bb8cdcf-wgcr7          1/1     Running   0          4d6h

الآن قم بإعادة توجيه منفذ محلي إلى المنفذ 10254 على أحد pods nginx.

kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254

لاحظ المنفذ المحلي (43307 في هذه الحالة) وافتحه http://localhost:43307/metrics في المستعرض. يجب أن تشاهد تحميل مقاييس وحدة تحكم ingress-nginx.

لقطة شاشة لمقاييس Prometheus في المتصفح.

يمكنك الآن إنهاء port-forward العملية لإغلاق إعادة التوجيه.

تكوين خدمة Azure Monitor المدارة ل Prometheus وAzure Managed Grafana باستخدام Container Insights

خدمة Azure Monitor المدارة ل Prometheus هي خدمة متوافقة مع Prometheus مدارة بالكامل تدعم الميزات القياسية للصناعة مثل PromQL ولوحات معلومات Grafana وتنبيهات Prometheus. تتطلب هذه الخدمة تكوين ملحق المقاييس لعامل Azure Monitor، الذي يرسل البيانات إلى Prometheus. إذا لم يتم تكوين نظام المجموعة الخاص بك باستخدام الوظيفة الإضافية، يمكنك اتباع هذه المقالة لتكوين نظام مجموعة Azure Kubernetes Service (AKS) لإرسال البيانات إلى خدمة Azure Monitor المدارة ل Prometheus وإرسال المقاييس المجمعة إلى مثيل Azure Managed Grafana.

تمكين الاستخراج المستند إلى التعليق التوضيحي للجراب

بمجرد تحديث نظام المجموعة الخاص بك باستخدام عامل Azure Monitor، تحتاج إلى تكوين العامل لتمكين الاستخراج استنادا إلى التعليقات التوضيحية ل Pod، والتي تتم إضافتها إلى pods ingress-nginx. توجد إحدى طرق تعيين هذا الإعداد في ama-metrics-settings-configmap ConfigMap في kube-system مساحة الاسم.

تنبيه

سيؤدي ذلك إلى استبدال ConfigMap الموجود ama-metrics-settings-configmap في kube-system. إذا كان لديك تكوين بالفعل، فقد ترغب في أخذ نسخة احتياطية أو دمجها مع هذا التكوين.

يمكنك النسخ الاحتياطي ConfigMap الموجود ama-metrics-settings-config إذا كان موجودا عن طريق تشغيل kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml

يقوم التكوين التالي بتعيين المعلمة podannotationnamespaceregex إلى .* لاستخراج كافة مساحات الأسماء.

kubectl apply -f - <<EOF
kind: ConfigMap
apiVersion: v1
metadata:
  name: ama-metrics-settings-configmap
  namespace: kube-system
data:
  schema-version:
    #string.used by agent to parse config. supported versions are {v1}. Configs with other schema versions will be rejected by the agent.
    v1
  config-version:
    #string.used by customer to keep track of this config file's version in their source control/repository (max allowed 10 chars, other chars will be truncated)
    ver1
  prometheus-collector-settings: |-
    cluster_alias = ""
  default-scrape-settings-enabled: |-
    kubelet = true
    coredns = false
    cadvisor = true
    kubeproxy = false
    apiserver = false
    kubestate = true
    nodeexporter = true
    windowsexporter = false
    windowskubeproxy = false
    kappiebasic = true
    prometheuscollectorhealth = false
  # Regex for which namespaces to scrape through pod annotation based scraping.
  # This is none by default. Use '.*' to scrape all namespaces of annotated pods.
  pod-annotation-based-scraping: |-
    podannotationnamespaceregex = ".*"
  default-targets-metrics-keep-list: |-
    kubelet = ""
    coredns = ""
    cadvisor = ""
    kubeproxy = ""
    apiserver = ""
    kubestate = ""
    nodeexporter = ""
    windowsexporter = ""
    windowskubeproxy = ""
    podannotations = ""
    kappiebasic = ""
    minimalingestionprofile = true
  default-targets-scrape-interval-settings: |-
    kubelet = "30s"
    coredns = "30s"
    cadvisor = "30s"
    kubeproxy = "30s"
    apiserver = "30s"
    kubestate = "30s"
    nodeexporter = "30s"
    windowsexporter = "30s"
    windowskubeproxy = "30s"
    kappiebasic = "30s"
    prometheuscollectorhealth = "30s"
    podannotations = "30s"
  debug-mode: |-
    enabled = false
EOF

في بضع دقائق، ama-metrics يجب إعادة تشغيل pods في kube-system مساحة الاسم واستلام التكوين الجديد.

مراجعة تصور المقاييس في Azure Managed Grafana

الآن بعد أن تم تكوين خدمة Azure Monitor المدارة ل Prometheus وAzure Managed Grafana، يجب عليك الوصول إلى مثيل Grafana المدار.

هناك لوحتا معلومات رسميتان للوحات معلومات ingress-nginx يمكنك تنزيلها واستيرادها إلى مثيل Grafana الخاص بك:

  • لوحة معلومات وحدة تحكم Ingress-nginx
  • طلب معالجة لوحة معلومات الأداء

لوحة معلومات وحدة تحكم Ingress-nginx

تمنحك لوحة المعلومات هذه رؤية لحجم الطلب والاتصالات ومعدلات النجاح وإعادة تحميل التكوينات والتهيئة خارج المزامنة. يمكنك أيضا استخدامه لعرض ضغط الإدخال/الإخراج للشبكة والذاكرة واستخدام وحدة المعالجة المركزية لوحدة تحكم الدخول. وأخيرا، فإنه يظهر أيضا أوقات الاستجابة المئوية P50 وP95 وP99 من دخولك ومعدل نقلها.

يمكنك تنزيل لوحة المعلومات هذه من GitHub.

لقطة شاشة لمتصفح يعرض لوحة معلومات ingress-nginx على Grafana.

طلب معالجة لوحة معلومات الأداء

تمنحك لوحة المعلومات هذه رؤية لأداء معالجة الطلب لوجهات انتقال البيانات المختلفة، وهي نقاط نهاية تطبيقاتك التي تقوم وحدة التحكم في الدخول بإعادة توجيه حركة المرور إليها. يظهر P50 وP95 وP99 النسبة المئوية لإجمالي الطلب وأوقات الاستجابة الأولية. يمكنك أيضا عرض تجميعات أخطاء الطلب وزمن الانتقال. استخدم لوحة المعلومات هذه لمراجعة وتحسين أداء تطبيقاتك وقابليتها للتوسع.

يمكنك تنزيل لوحة المعلومات هذه من GitHub.

لقطة شاشة لمستعرض يعرض لوحة معلومات أداء معالجة طلب ingress-nginx على Grafana.

استيراد لوحة معلومات

لاستيراد لوحة معلومات Grafana، قم بتوسيع القائمة اليسرى وانقر فوق استيراد ضمن لوحات المعلومات.

لقطة شاشة لمستعرض يعرض مثيل Grafana مع تمييز لوحة معلومات الاستيراد.

ثم قم بتحميل ملف لوحة المعلومات المطلوب وانقر فوق تحميل.

لقطة شاشة لمستعرض يعرض مربع حوار لوحة معلومات استيراد مثيل Grafana.

الخطوات التالية

  • يمكنك تكوين تحجيم أحمال العمل باستخدام مقاييس الدخول التي تم استخراجها باستخدام Prometheus باستخدام Kubernetes Event Driven Autoscaler (KEDA). تعرف على المزيد حول دمج KEDA مع AKS.
  • إنشاء اختبار تحميل وتشغيله باستخدام Azure Load Testing لاختبار أداء حمل العمل وتحسين قابلية التوسع لتطبيقاتك.