تكوين جمع البيانات في نتائج تحليلات الحاوية باستخدام ConfigMap

توضح هذه المقالة كيفية تكوين جمع البيانات في نتائج تحليلات الحاوية باستخدام ConfigMap. التكوين الخرائط هي آلية Kubernetes تسمح لك بتخزين بيانات غير سرية مثل ملف التكوين أو متغيرات البيئة.

يتم استخدام ConfigMap بشكل أساسي لتكوين جمع البيانات لسجلات الحاوية ومتغيرات البيئة للمجموعة. يمكنك تكوين سجلات stdout وstderr بشكل فردي وتمكين التسجيل متعدد الأسطر أيضا. l يتضمن التكوين المحدد الذي يمكنك تنفيذه باستخدام ConfigMap ما يلي:

  • تمكين/تعطيل وتصفية مساحة الاسم لسجلات stdout وstderr
  • تمكين/تعطيل مجموعة متغيرات البيئة لنظام المجموعة
  • تصفية أحداث Kube العادية
  • تحديد مخطط السجل
  • تمكين/تعطيل التسجيل متعدد الأسطر
  • تجاهل إعدادات الوكيل

هام

قد يتطلب التكوين الكامل لجمع البيانات في نتائج تحليلات الحاوية تحرير كل من ConfigMap وقاعدة جمع البيانات (DCR) لنظام المجموعة لأن كل أسلوب يسمح بتكوين مجموعة مختلفة من الإعدادات.

راجع تكوين جمع البيانات في نتائج تحليلات الحاوية باستخدام قاعدة جمع البيانات للحصول على قائمة بالإعدادات وعملية تكوين جمع البيانات باستخدام DCR.

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

  • ConfigMap هي قائمة عمومية ويمكن أن يكون هناك ConfigMap واحد فقط مطبق على عامل نتائج تحليلات الحاوية. سيؤدي تطبيق ConfigMap آخر إلى إلغاء إعدادات مجموعة ConfigMap السابقة.
  • الحد الأدنى لإصدار العامل المدعوم لجمع stdout وstderr والمتغيرات البيئية من أحمال عمل الحاوية هو ciprod06142019 أو أحدث. للتحقق من إصدار العامل الخاص بك، في علامة التبويب Node ، حدد عقدة. في جزء Properties، لاحظ قيمة الخاصية Agent Image Tag. لمزيد من المعلومات حول إصدارات العامل وما هو مضمن في كل إصدار، راجع ملاحظات إصدار العامل.

تكوين ونشر ConfigMap

استخدم الإجراء التالي لتكوين ملف تكوين ConfigMap ونشره في نظام المجموعة:

  1. قم بتنزيل ملف قالب ConfigMap YAML وافتحه في محرر. إذا كان لديك بالفعل ملف ConfigMap، فيمكنك استخدام هذا الملف.

  2. تحرير ملف ConfigMap YAML باستخدام التخصيصات باستخدام الإعدادات الموضحة في إعدادات تجميع البيانات

  3. إنشاء ConfigMap عن طريق تشغيل الأمر kubectl التالي:

    kubectl apply -f <configmap_yaml_file.yaml>
    

    مثال:

    kubectl apply -f container-azm-ms-agentconfig.yaml
    

    قد يستغرِق تغيير التكوين بضع دقائق حتى يكتمل قبل التفعيل. ثم ستتم إعادة تشغيل جميع جرابات عامل Azure Monitor في نظام المجموعة. إعادة التشغيل هي إعادة تشغيل متداولة لجميع جرابات عامل Azure Monitor، لذلك لا تتم إعادة تشغيلها جميعا في نفس الوقت. عند الانتهاء من إعادة التشغيل، ستتلقى رسالة مشابهة للنتيجة التالية:

    configmap "container-azm-ms-agentconfig" created`.
    

إعدادات جمع البيانات

يصف الجدول التالي الإعدادات التي يمكنك تكوينها للتحكم في جمع البيانات.

الإعدادات نوع البيانات قيمة ‏‏الوصف
schema-version سلسلة (حساسة لحالة الأحرف) v1 يستخدمه العامل عند تحليل ConfigMap هذا. إصدار المخطط المدعوم حالياً هو الإصدار 1 "v1". تعديل هذه القيمة غير معتمد وسيتم رفضه عند تقييم ConfigMap.
config-version السلسلة‬ يسمح لك بتعقب إصدار ملف التكوين هذا في نظام/مستودع التحكم بالمصادر. الحد الأقصى المسموح به للأحرف هو 10 أحرف، ويتم اقتطاع جميع الأحرف الأخرى.
[log_collection_settings]
[stdout] enabled Boolean صحيح
true
يتحكم في تمكين مجموعة سجل حاوية stdout. عند التعيين إلى true ولا يتم استبعاد أي مساحات أسماء لمجموعة سجل stdout، سيتم جمع سجلات stdout من جميع الحاويات عبر جميع الحجيرات والعقد في نظام المجموعة. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي true.
[stdout] exclude_namespaces السلسلة‬ صفيف مفصول بفاصلة صفيف مساحات أسماء Kubernetes التي لن يتم جمع سجلات stdout لها. هذا الإعداد فعال فقط إذا enabled تم تعيينه إلى true. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي
["kube-system","gatekeeper-system"].
[stderr] enabled Boolean صحيح
true
يتحكم في ما إذا كان يتم تمكين مجموعة سجل حاوية stderr. عند التعيين إلى true ولا يتم استبعاد أي مساحات أسماء لمجموعة سجل stderr، سيتم جمع سجلات stderr من جميع الحاويات عبر جميع القرون والعقد في نظام المجموعة. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي true.
[stderr] exclude_namespaces السلسلة‬ صفيف مفصول بفاصلة صفيف مساحات أسماء Kubernetes التي لن يتم جمع سجلات stderr لها. هذا الإعداد فعال فقط إذا enabled تم تعيينه إلى true. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي
["kube-system","gatekeeper-system"].
[env_var] enabled Boolean صحيح
true
يتحكم هذا الإعداد في مجموعة متغيرات البيئة عبر جميع الحجيرات والعقد في نظام المجموعة. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي true. إذا تم تمكين مجموعة متغيرات البيئة بشكل عام، يمكنك تعطيلها لحاوية معينة عن طريق تعيين متغير AZMON_COLLECT_ENV البيئة إما False مع إعداد Dockerfile أو في ملف التكوين ل Pod ضمن env: القسم . إذا تم تعطيل مجموعة متغيرات البيئة بشكل عام، فلا يمكنك تمكين المجموعة لحاوية معينة. التجاوز الوحيد الذي يمكن تطبيقه على مستوى الحاوية هو تعطيل المجموعة عند تمكينها بالفعل عالميا.
[enrich_container_logs] enabled Boolean صحيح
true
يتحكم في إثراء سجل الحاوية Name لملء قيم الخصائص و Image لكل سجل سجل مكتوب في جدول ContainerLog لكافة سجلات الحاوية في نظام المجموعة. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي false.
[collect_all_kube_events] enabled Boolean صحيح
true
يتحكم في ما إذا كان يتم تجميع أحداث Kube من جميع الأنواع. بشكل افتراضي، لا يتم تجميع أحداث Kube ذات النوع Normal . عندما يكون trueهذا الإعداد ، لن تتم تصفية الأحداث العادية ، ويتم تجميع كافة الأحداث. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي false.
[schema] containerlog_schema_version سلسلة (حساسة لحالة الأحرف) v2
v1
تعيين تنسيق استيعاب السجل. إذا ، v2يتم استخدام الجدول ContainerLogV2. إذا v1، يتم استخدام جدول ContainerLog (تم إهمال هذا الجدول). بالنسبة للمجموعات التي تمكن نتائج تحليلات الحاوية باستخدام الإصدار 2.54.0 من Azure CLI أو أحدث، يكون الإعداد الافتراضي هو v2. راجع مخطط سجل نتائج تحليلات الحاوية للحصول على التفاصيل.
[enable_multiline_logs] enabled Boolean صحيح
true
يتحكم في تمكين سجلات الحاويات متعددة الأسطر. راجع تسجيل متعدد الأسطر في Container Insights للحصول على التفاصيل. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي false. يتطلب schema هذا الإعداد أن يكون v2.
[metric_collection_settings]
[collect_kube_system_pv_metrics] enabled Boolean صحيح
true
يسمح بتجميع مقاييس استخدام وحدة التخزين الثابتة (PV) في مساحة اسم نظام kube. بشكل افتراضي، لا يتم جمع مقاييس الاستخدام لوحدات التخزين الثابتة مع مطالبات وحدة التخزين الثابتة في مساحة اسم نظام kube. عند تعيين هذا الإعداد إلى true، يتم تجميع مقاييس استخدام PV لجميع مساحات الأسماء. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي false.
[agent_settings]
[proxy_config] ignore_proxy_settings Boolean صحيح
true
عندما trueيتم تجاهل إعدادات الوكيل. لكل من بيئات Kubernetes التي تدعم AKS وArc، إذا تم تكوين نظام المجموعة الخاص بك مع وكيل إعادة التوجيه، فسيتم تطبيق إعدادات الوكيل تلقائيا واستخدامها للعامل. بالنسبة إلى تكوينات معينة، مثل AMPLS + Proxy، قد ترغب في تجاهل تكوين الوكيل. إذا لم يتم تحديدها في ConfigMap، فإن القيمة الافتراضية هي false.

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

للتحقق من تطبيق التكوين بنجاح على نظام مجموعة، استخدم الأمر التالي لمراجعة السجلات من جراب عامل.

kubectl logs ama-logs-fdf58 -n kube-system

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

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

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

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

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

    config::error::Exception while parsing config map for log collection/env variable settings: \nparse error on value \"$\" ($end), using defaults, please check config map for errors
    
  • من جدول KubeMonAgentEvents في مساحة عمل "تحليلات السجل" Log Analytics. يتم إرسال البيانات كل ساعة مع خطورة الخطأ لأخطاء التكوين. إذا لم تكن هناك أخطاء، فسيكون للإدخل في الجدول بيانات تحتوي على معلومات الخطورة، والتي لا تبلغ عن أي أخطاء. تحتوي الخاصية Tags على مزيد من المعلومات حول الحاوية ومعرف الحاوية الذي حدث عليه الخطأ وأيضا التكرار الأول والحدث الأخير والعد في الساعة الأخيرة.

التحقق من إصدار المخطط

تتوفر إصدارات مخطط التكوين المدعومة كتعليم توضيحي للجراب (إصدارات المخطط) على جراب عامل Azure Monitor. يمكنك رؤيتها باستخدام الأمر kubectl التالي.

kubectl describe pod ama-logs-fdf58 -n=kube-system.

يظهر إخراج مشابه للمثال التالي مع إصدارات مخطط التعليق التوضيحي:

    Name:           ama-logs-fdf58
    Namespace:      kube-system
    Node:           aks-agentpool-95673144-0/10.240.0.4
    Start Time:     Mon, 10 Jun 2019 15:01:03 -0700
    Labels:         controller-revision-hash=589cc7785d
                    dsName=ama-logs-ds
                    pod-template-generation=1
    Annotations:    agentVersion=1.10.0.1
                  dockerProviderVersion=5.0.0-0
                    schema-versions=v1 

الأسئلة الشائعة

كيف يمكنني تمكين جمع السجل للحاويات في مساحة اسم نظام kube من خلال Helm؟

يتم تعطيل مجموعة السجل من حاويات في مساحة اسم نظام kube بشكل افتراضي. يمكنك تمكين مجموعة السجل عن طريق تعيين متغير بيئة على عامل Azure Monitor. راجع صفحة Container insights GitHub.

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