تكوين مجموعة السجل في نتائج تحليلات الحاوية

توفر هذه المقالة تفاصيل حول كيفية تكوين جمع البيانات في نتائج تحليلات الحاوية لمجموعة Kubernetes الخاصة بك بمجرد إعدادها. للحصول على إرشادات حول تمكين نتائج تحليلات الحاوية على مجموعتك، راجع تمكين المراقبة لمجموعات Kubernetes.

أساليب التكوين

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

الطريقة ‏‏الوصف
قاعدة جمع البيانات (DCR) قواعد جمع البيانات هي مجموعات من الإرشادات التي تدعم جمع البيانات باستخدام البنية الأساسية لبرنامج ربط العمليات التجارية Azure Monitor. يتم إنشاء DCR عند تمكين نتائج تحليلات الحاوية، ويمكنك تعديل الإعدادات في DCR هذا إما باستخدام مدخل Microsoft Azure أو أساليب أخرى.
ConfigMap ConfigMaps هي آلية Kubernetes تسمح لك بتخزين البيانات غير السرية مثل ملف التكوين أو متغيرات البيئة. تبحث نتائج تحليلات الحاوية عن ConfigMap على كل مجموعة بإعدادات معينة تحدد البيانات التي يجب أن تجمعها.

تكوين جمع البيانات باستخدام DCR

يسمى DCR الذي تم إنشاؤه بواسطة نتائج تحليلات الحاوية MSCI-cluster-region-cluster-name><<>. يمكنك عرض DCR هذا مع الآخرين في اشتراكك، ويمكنك تحريره باستخدام الأساليب الموضحة في إنشاء قواعد جمع البيانات (DCRs) وتحريرها في Azure Monitor. بينما يمكنك تعديل DCR مباشرة لتخصيصات معينة، يمكنك إجراء التكوين الأكثر تطلبا باستخدام الطرق الموضحة أدناه. راجع تحويلات البيانات في نتائج تحليلات الحاوية للحصول على تفاصيل حول تحرير DCR مباشرة للحصول على تكوينات أكثر تقدما.

هام

يجب أن تستخدم مجموعات AKS إما هوية مدارة معينة من قبل النظام أو معينة من قبل المستخدم. إذا كان نظام المجموعة يستخدم كيان خدمة، يجب تحديث نظام المجموعة لاستخدام هوية مدارة معينة من قبل النظام أو هوية مدارة معينة من قبل المستخدم.

تكوين DCR باستخدام مدخل Microsoft Azure

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

  1. حدد نظام المجموعة في مدخل Microsoft Azure.

  2. حدد خيار Insights في قسم Monitoring من القائمة.

  3. إذا تم تمكين نتائج تحليلات الحاوية بالفعل على نظام المجموعة، فحدد الزر إعدادات المراقبة. إذا لم يكن الأمر كما هو، فحدد Configure Azure Monitor وشاهد Enable monitoring on your Kubernetes cluster with Azure Monitor للحصول على تفاصيل حول تمكين المراقبة.

    لقطة شاشة لمجموعة AKS مع زر إعدادات جهاز العرض.

  4. بالنسبة إلى AKS وKubernetes الممكن ل Arc، حدد استخدام الهوية المدارة إذا لم تكن قد قمت بترحيل نظام المجموعة إلى مصادقة الهوية المدارة.

  5. حدد أحد الإعدادات المسبقة للتكلفة.

    لقطة شاشة تعرض خيارات الإعداد.

    إعداد مسبق للتكلفة تكرار عملية الجمع عوامل تصفية مساحة الاسم مجموعة Syslog البيانات المُجمعة
    قياسي 1 م بلا غير ممكّن جميع جداول نتائج تحليلات الحاوية القياسية
    تحسين التكلفة 5 م يستبعد kube-system، gatekeeper-system، azure-arc غير ممكّن جميع جداول نتائج تحليلات الحاوية القياسية
    Syslog 1 م بلا ممكّن بشكل افتراضي جميع جداول نتائج تحليلات الحاوية القياسية
    السجلات والأحداث 1 م بلا غير ممكّن ContainerLog/ContainerLogV2
    KubeEvents
    KubePodInventory
  6. إذا كنت تريد تخصيص الإعدادات، فانقر فوق تحرير إعدادات المجموعة.

    لقطة شاشة تعرض خيارات إعدادات المجموعة.

    Name ‏‏الوصف
    تكرار عملية الجمع تحديد عدد المرات التي يجمع فيها العامل البيانات. القيم الصالحة هي 1m - 30m في فواصل زمنية 1m القيمة الافتراضية هي 1m.
    تصفية مساحة الاسم إيقاف التشغيل: يجمع البيانات على جميع مساحات الأسماء.
    تضمين: يجمع البيانات فقط من القيم الموجودة في حقل مساحات الأسماء .
    استبعاد: يجمع البيانات من كافة مساحات الأسماء باستثناء القيم الموجودة في حقل مساحات الأسماء .

    مصفوفة من مساحات أسماء Kubernetes المفصولة بفواصل لجمع بيانات المخزون والفاحص استنادا إلى namespaceFilteringMode. على سبيل المثال، تجمع مساحات الأسماء = ["kube-system"، و"default"] مع إعداد Include مساحات الأسماء هاتين فقط. باستخدام إعداد Exclude، يجمع العامل البيانات من جميع مساحات الأسماء الأخرى باستثناء kube-system والإعداد الافتراضي.
    البيانات المجمعة تحديد جداول نتائج تحليلات الحاوية التي يجب تجميعها. انظر أدناه للحصول على وصف لكل تجميع.
    تمكين ContainerLogV2 علامة منطقية لتمكين مخطط ContainerLogV2. إذا تم تعيينها إلى true، يتم استيعاب stdout/stderr Logs إلى جدول ContainerLogV2 . إذا لم يكن الأمر كما هو، يتم استيعاب سجلات الحاوية في جدول ContainerLog ، ما لم يتم تحديد خلاف ذلك في ConfigMap. عند تحديد التدفقات الفردية، يجب تضمين الجدول المقابل ل ContainerLog أو ContainerLogV2.
    تمكين مجموعة Syslog تمكين مجموعة Syslog من نظام المجموعة.

    يسمح لك خيار البيانات المجمعة بتحديد الجداول التي يتم ملؤها للمجموعة. يتم تجميع الجداول حسب السيناريوهات الأكثر شيوعا. لتحديد جداول فردية، يجب تعديل DCR باستخدام أسلوب آخر.

    لقطة شاشة تعرض خيارات البيانات التي تم جمعها.

    التجميع الجداول ملاحظات
    الكل (افتراضي) جميع جداول نتائج تحليلات الحاوية القياسية مطلوب لتمكين مرئيات نتائج تحليلات الحاوية الافتراضية
    الأداء Perf و InsightsMetrics
    السجلات والأحداث ContainerLog أو ContainerLogV2، KubeEvents، KubePodInventory يوصى به إذا قمت بتمكين مقاييس Prometheus المدارة
    أحمال العمل والنشرات وHPAs InsightsMetrics، KubePodInventory، KubeEvents، ContainerInventory، ContainerNodeInventory، KubeNodeInventory، KubeServices
    وحدات التخزين الثابتة InsightsMetrics، KubePVInventory
  7. انقر فوق تكوين لحفظ الإعدادات.

الجداول والمقاييس القابلة للتطبيق ل DCR

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

اسم الجدول فترة؟ مساحات الأسماء؟ الملاحظات
ContainerInventory ‏‏نعم‬ ‏‏نعم‬
ContainerNodeInventory ‏‏نعم‬ لا إعداد جمع البيانات لمساحات الأسماء غير قابل للتطبيق نظرا لأن عقدة Kubernetes ليست موردا محدد النطاق لمساحة الاسم
KubeNodeInventory ‏‏نعم‬ لا إعداد جمع البيانات لمساحات الأسماء غير قابل للتطبيق عقدة Kubernetes ليس موردا محددا لمساحة الاسم
KubePodInventory ‏‏نعم‬ ‏‏نعم‬
KubePVInventory ‏‏نعم‬ ‏‏نعم‬
KubeServices ‏‏نعم‬ ‏‏نعم‬
KubeEvents لا ‏‏نعم‬ لا ينطبق إعداد جمع البيانات للفاصل الزمني على أحداث Kubernetes
الاداء ‏‏نعم‬ ‏‏نعم‬ لا ينطبق إعداد جمع البيانات لمساحات الأسماء على المقاييس المتعلقة بعقدة Kubernetes نظرا لأن عقدة Kubernetes ليست كائنا محدد النطاق لمساحة الاسم.
InsightsMetrics ‏‏نعم‬ ‏‏نعم‬ تنطبق إعدادات جمع البيانات فقط على المقاييس التي تجمع مساحات الأسماء التالية: container.azm.ms/kubestate container.azm.ms/pv container.azm.ms/gpu
مساحة اسم مقياس فترة؟ مساحات الأسماء؟ الملاحظات
Insights.container/nodes ‏‏نعم‬ لا العقدة ليست موردا محددا لمساحة الاسم
Insights.container/pods ‏‏نعم‬ ‏‏نعم‬
Insights.container/containers ‏‏نعم‬ ‏‏نعم‬
Insights.container/persistentvolumes ‏‏نعم‬ ‏‏نعم‬

قيم الدفق في DCR

عند تحديد الجداول المراد تجميعها باستخدام CLI أو ARM، يمكنك تحديد اسم دفق يتوافق مع جدول معين في مساحة عمل Log Analytics. يسرد الجدول التالي اسم الدفق لكل جدول.

إشعار

إذا كنت على دراية ببنية قاعدة تجميع البيانات، يتم تحديد أسماء الدفق في هذا الجدول في قسم تدفقات البيانات في DCR.

الدفق جدول نتائج تحليلات الحاوية
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerLogV2-HighScale ContainerLogV2 (وضع المقياس العالي)1
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf الاداء

1 يجب عدم استخدام كل من Microsoft-ContainerLogV2 وMicrosoft-ContainerLogV2-HighScale في نفس DCR. سيؤدي ذلك إلى تكرار البيانات.

مشاركة DCR مع مجموعات متعددة

عند تمكين نتائج تحليلات الحاوية على مجموعة Kubernetes، يتم إنشاء DCR جديد لتلك المجموعة، ويمكن تعديل DCR لكل نظام مجموعة بشكل مستقل. إذا كان لديك مجموعات متعددة مع تكوينات مراقبة مخصصة، فقد تحتاج إلى مشاركة DCR واحد مع مجموعات متعددة. يمكنك بعد ذلك إجراء تغييرات على DCR واحد يتم تنفيذه تلقائيا لأي مجموعات مقترنة به.

يقترن DCR بمجموعة مع قاعدة تجميع بيانات مقترنة (DCRA) . استخدم تجربة معاينة DCR لعرض اقترانات DCR الموجودة وإزالتها لكل نظام مجموعة. يمكنك بعد ذلك استخدام هذه الميزة لإضافة اقتران إلى DCR واحد لمجموعات متعددة.

تكوين جمع البيانات باستخدام ConfigMap

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

هام

ConfigMap هي قائمة عمومية ويمكن أن يكون هناك ConfigMap واحد فقط مطبق على عامل نتائج تحليلات الحاوية. سيؤدي تطبيق ConfigMap آخر إلى إلغاء إعدادات مجموعة ConfigMap السابقة.

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

  • الحد الأدنى لإصدار العامل المدعوم لجمع stdout وstderr والمتغيرات البيئية من أحمال عمل الحاوية هو ciprod06142019 أو أحدث.

تكوين ونشر ConfigMap

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

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

  2. قم بتحرير ملف ConfigMap YAML باستخدام التخصيصات الخاصة بك. يتضمن القالب جميع الإعدادات الصالحة مع أوصاف. لتمكين إعداد، قم بإزالة حرف التعليق (#) وتعيين قيمته.

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

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    
    # Example: 
    kubectl config set-context my-cluster
    kubectl apply -f container-azm-ms-agentconfig.yaml
    

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

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

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

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

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

إذا كانت هناك أخطاء تكوين من جرابات عامل 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.

إعدادات ConfigMap

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

الإعدادات نوع البيانات قيمة ‏‏الوصف
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.
[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.
[metadata_collection]
enabled
Boolean صحيح
true
يتحكم في ما إذا كان يتم تجميع بيانات التعريف في KubernetesMetadata عمود ContainerLogV2 الجدول.
[metadata_collection]
include_fields
السلسلة‬ صفيف مفصول بفاصلة قائمة حقول بيانات التعريف المراد تضمينها. إذا لم يتم استخدام الإعداد، جمع جميع الحقول. القيم الصالحة هي ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
[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.

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