إرسال مقاييس Prometheus إلى مساحة عمل Log Analytics باستخدام نتائج تحليلات الحاوية

توضح هذه المقالة كيفية إرسال مقاييس Prometheus من مجموعة Kubernetes الخاصة بك التي تراقبها نتائج تحليلات الحاوية إلى مساحة عمل Log Analytics. قبل إجراء هذا التكوين، يجب عليك أولا التأكد من استخراج مقاييس Prometheus من مجموعتك باستخدام خدمة Azure Monitor المدارة ل Prometheus، وهي الطريقة الموصى بها لمراقبة مجموعاتك. استخدم التكوين الموضح في هذه المقالة فقط إذا كنت تريد أيضا إرسال نفس هذه البيانات إلى مساحة عمل Log Analytics حيث يمكنك تحليلها باستخدام استعلامات السجل وتنبيهات بحث السجل.

يتطلب هذا التكوين تكوين ملحق المراقبة لعامل Azure Monitor، وهو نفسه الذي تستخدمه نتائج تحليلات الحاوية لإرسال البيانات إلى مساحة عمل Log Analytics. يتطلب الكشف عن نقطة نهاية مقاييس Prometheus من خلال المصدرين أو القرون ثم تكوين ملحق المراقبة لعامل Azure Monitor المستخدم بواسطة نتائج تحليلات الحاوية كما هو موضح في الرسم التخطيطي التالي.

رسم تخطيطي لبنية مراقبة الحاوية التي ترسل مقاييس Prometheus إلى سجلات Azure Monitor.

إعدادات استخراج Prometheus (للمقاييس المخزنة كسجلات)

يتم تنفيذ استخراج المقاييس النشطة من Prometheus من أحد المنظورين أدناه ويتم إرسال المقاييس إلى مساحة عمل تحليلات السجل المكونة :

  • على مستوى المجموعة: معرف في قسم ConfigMap [Prometheus data_collection_settings.cluster].
  • على مستوى العقدة: معرف في قسم ConfigMap [Prometheus_data_collection_settings.node].
نقطة النهاية النطاق مثال
تعليق توضيحي للجراب على مستوى المجموعة prometheus.io/scrape: "true"
prometheus.io/path: "/mymetrics"
prometheus.io/port: "8000"
prometheus.io/scheme: "http"
خدمة Kubernetes على مستوى المجموعة http://my-service-dns.my-namespace:9100/metrics
http://metrics-server.kube-system.svc.cluster.local/metrics
URL/نقطة النهاية لكل عقدة و/أو على مستوى المجموعة http://myurl:9101/metrics

عند تحديد عنوان URL، لا تستخرج Container insights إلا نقطة النهاية. عند تحديد خدمة Kubernetes، يتم حل اسم الخدمة باستخدام خادم DNS لنظام المجموعة؛ للحصول على عنوان IP. ثم يتم استخراج الخدمة التي تم حلها.

النطاق المفتاح نوع البيانات قيمة ‏‏الوصف
على مستوى المجموعة حدد أيًا من الطرق الثلاث التالية لاستخراج نقاط النهاية للمقاييس.
urls السلسلة‬ صفيف مفصول بفاصلة نقطة نهاية HTTP (إما عنوان IP أو مسار URL صالح محدد). على سبيل المثال: urls=[$NODE_IP/metrics]. ($ NODE_IP هي معلمة محددة لنتائج تحليلات الحاوية ويمكن استخدامها بدلاً من عنوان IP للعقدة. يجب أن تكون جميعها بأحرف كبيرة.)
kubernetes_services السلسلة‬ صفيف مفصول بفاصلة صفيف من خدمات Kubernetes لاستخراج المقاييس من kube-state-metrics. يجب استخدام أسماء المجالات المؤهلة بالكامل هنا. على سبيل المثال،kubernetes_services = ["http://metrics-server.kube-system.svc.cluster.local/metrics",http://my-service-dns.my-namespace.svc.cluster.local:9100/metrics]
monitor_kubernetes_pods Boolean صواب أو خطأ عند التعيين إلى true في الإعدادات على مستوى المجموعة، يقوم عامل نتائج تحليلات الحاوية بالتخلص من جرابات Kubernetes عبر المجموعة بأكملها للتعليقات التوضيحية Prometheus التالية:
prometheus.io/scrape:
prometheus.io/scheme:
prometheus.io/path:
prometheus.io/port:
prometheus.io/scrape Boolean صواب أو خطأ تمكين استخراج الحجيرة، monitor_kubernetes_pods ويجب تعيينها إلى true.
prometheus.io/scheme السلسلة‬ http الإعدادات الافتراضية للاستخراج عبر HTTP.
prometheus.io/path السلسلة‬ صفيف مفصول بفاصلة مسار مورد HTTP الذي يجب إحضار المقاييس منه. إذا لم يكن مسار المقاييس /metrics، فحدده بهذا التعليق التوضيحي.
prometheus.io/port السلسلة‬ 9102 حدد منفذا للاستخراج منه. إذا لم يتم تعيين المنفذ، تعيينه افتراضيا إلى 9102.
monitor_kubernetes_pods_namespaces السلسلة‬ صفيف مفصول بفاصلة قائمة السماح لمساحات الأسماء لاستخراج المقاييس من جرابات Kubernetes.
على سبيل المثال، monitor_kubernetes_pods_namespaces = ["default1", "default2", "default3"]
على نطاق العقدة urls السلسلة‬ صفيف مفصول بفاصلة نقطة نهاية HTTP (إما عنوان IP أو مسار URL صالح محدد). على سبيل المثال: urls=[$NODE_IP/metrics]. ($ NODE_IP هي معلمة محددة لنتائج تحليلات الحاوية ويمكن استخدامها بدلاً من عنوان IP للعقدة. يجب أن تكون جميعها بأحرف كبيرة.)
على نطاق العقدة أو نظام المجموعة interval السلسلة‬ 60 ثانية الإعداد الافتراضي للفاصل الزمني للمجموعة هو دقيقة واحدة (60 ثانية). يمكنك تعديل المجموعة إما لـ [prometheus_data_collection_settings.node] و/أو [prometheus_data_collection_settings.cluster] إلى وحدات زمنية مثل ثانية ودقيقة وساعة.
على نطاق العقدة أو نظام المجموعة fieldpass
fielddrop
السلسلة‬ صفيف مفصول بفاصلة يمكنك تحديد مقاييس معينة ليتم جمعها أو عدم جمعها من نقطة النهاية عن طريق تعيين قائمة السماح (fieldpass) وعدم السماح (fielddrop). يجب تعيين قائمة السماح أولاً.

تكوين ConfigMaps لتحديد تكوين استخراج Prometheus (للمقاييس المخزنة كسجلات)

قم بتنفيذ الخطوات التالية لتكوين ملف تكوين ConfigMap لنظام المجموعة الخاص بك. ConfigMaps هي قائمة عمومية، وبها يمكن تطبيق ConfigMap واحد فقط على العامل. لا يمكن أن يكون لديك ConfigMaps أخرى تلغي المجموعات.

  1. قم بتنزيل ملف القالب ConfigMap YAML واحفظه باسم container-azm-ms-agentconfig.yaml. إذا قمت بالفعل بتوزيع ConfigMap على نظام المجموعة، وتريد تحديثها باستخدام تكوين أحدث، يمكنك تحرير ملف ConfigMap الذي استخدمته سابقًا.

  2. حرر ملف ConfigMap yaml مع التخصيصات الخاصة بك لاستخراج مقاييس Prometheus.

    لجمع خدمات Kubernetes على مستوى نظام المجموعة، قم بتكوين ملف ConfigMap باستخدام المثال التالي:

    prometheus-data-collection-settings: |- ​
    # Custom Prometheus metrics data collection settings
    [prometheus_data_collection_settings.cluster] ​
    interval = "1m"  ## Valid time units are s, m, h.
    fieldpass = ["metric_to_pass1", "metric_to_pass12"] ## specify metrics to pass through ​
    fielddrop = ["metric_to_drop"] ## specify metrics to drop from collecting
    kubernetes_services = ["http://my-service-dns.my-namespace:9102/metrics"]
    
  3. تشغيل أمر Kubectl التالي: kubectl apply -f <configmap_yaml_file.yaml>.

    مثال:kubectl apply -f container-azm-ms-agentconfig.yaml.

قد يستغرِق تغيير التكوين بضع دقائق حتى يكتمل قبل التفعيل. ستتم إعادة تشغيل جميع pods ama-logs في نظام المجموعة. عند الانتهاء من إعادة التشغيل، يتم عرض رسالة مشابهة لما يلي وتتضمن النتيجة: configmap "container-azm-ms-agentconfig" created.

التحقق من التكوين

للتحقق من تطبيق التكوين بنجاح على نظام مجموعة، استخدم الأمر التالي لمراجعة السجلات من جراب عامل: kubectl logs ama-logs-fdf58 -n=kube-system.

إذا كانت هناك أخطاء تكوين من جرابات عامل Azure Monitor، يظهر الإخراج أخطاء مشابهة للمثال التالي:

***************Start Config Processing******************** 
config::unsupported/missing config schema version - 'v21' , using defaults

الأخطاء المتعلقة بتطبيق تغييرات التكوين متاحة أيضاً للمراجعة. تتوفر الخيارات التالية لإجراء استكشاف أخطاء إضافي لتغييرات التكوين واستخراج مقاييس Prometheus:

  • من سجلات وحدات جراب العامل باستخدام نفس الأمر kubectl logs.

  • من البيانات المباشرة. تظهر سجلات البيانات المباشرة أخطاء مشابهة للمثال التالي:

    2019-07-08T18:55:00Z E! [inputs.prometheus]: Error in plugin: error making HTTP request to http://invalidurl:1010/metrics: Get http://invalidurl:1010/metrics: dial tcp: lookup invalidurl on 10.0.0.10:53: no such host
    
  • من جدول KubeMonAgentEvents في مساحة عمل "تحليلات السجل" Log Analytics. يتم إرسال البيانات كل ساعة مع خطورة التحذير لأخطاء القصاصة وخطورة الخطأ لأخطاء التكوين. إذا لم تكن هناك أخطاء، فإن الإدخال في الجدول يحتوي على بيانات تحتوي على معلومات الخطورة، والتي لا تبلغ عن أي أخطاء. تحتوي الخاصية Tags على مزيد من المعلومات حول الحاوية ومعرف الحاوية الذي حدث عليه الخطأ وأيضا التكرار الأول والحدث الأخير والعد في الساعة الأخيرة.

  • بالنسبة إلى Azure Red Hat OpenShift v3.x وv4.x، تحقق من سجلات عامل Azure Monitor عن طريق البحث في جدول ContainerLog للتحقق مما إذا تم تمكين مجموعة سجل openshift-azure-logging.

تمنع الأخطاء عامل Azure Monitor من تحليل الملف، مما يؤدي إلى إعادة تشغيله واستخدام التكوين الافتراضي. بعد تصحيح الخطأ (الأخطاء) في ConfigMap على أنظمة مجموعات أخرى غير Azure Red Hat OpenShift v3، احفظ ملف yaml وقم بتطبيق ConfigMaps المحدثة عن طريق تشغيل الأمر: ⁧kubectl apply -f <configmap_yaml_file.yaml⁩.

بالنسبة لـ Azure Red Hat OpenShift v3، قم بتحرير وحفظ ConfigMaps المحدثة عن طريق تشغيل الأمر: oc edit configmaps container-azm-ms-agentconfig -n openshift-azure-logging.

الاستعلام عن بيانات مقاييس Prometheus

لعرض مقاييس Prometheus التي تم استخراجها بواسطة Azure Monitor وأي أخطاء تكوين/استخراج أبلغ عنها العامل، راجع استعلام بيانات مقاييس Prometheus.

عرض مقاييس Prometheus في Grafana

تدعم نتائج تحليلات الحاوية عرض المقاييس المخزنة في مساحة عمل Log Analytics في لوحات معلومات Grafana. لقد قدمنا قالب يمكنك تنزيله من مستودع لوحة معلومات Grafana. استخدم القالب للبدء والرجوع إليه لمساعدتك في تعلم كيفية الاستعلام عن البيانات الأخرى من أنظمة المجموعات المراقبة لديك للتصور في لوحات معلومات Grafana المخصصة.

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