مخطط سجل نتائج تحليلات الحاوية

تخزن نتائج تحليلات الحاوية بيانات السجل التي تجمعها في جدول يسمى ContainerLogV2. تصف هذه المقالة مخطط هذا الجدول ومقارنتها وترحيلها من جدول ContainerLog القديم.

هام

سيكون ContainerLogV2 المخطط الافتراضي عبر ConfigMap ل CLI الإصدار 2.54.0 والإصدارات الأحدث. سيكون ContainerLogV2 تنسيق استيعاب افتراضي للعملاء الذين سيقومون بإلحاق نتائج تحليلات الحاوية باستخدام مصادقة الهوية المدارة باستخدام ARM وBicep وTerraform والنهج وإلحاق المدخل. يمكن تمكين ContainerLogV2 بشكل صريح من خلال إصدار CLI 2.51.0 أو أعلى باستخدام إعدادات تجميع البيانات.

سيتم إيقاف دعم جدول ContainerLog في 30 سبتمبر 2026.

مقارنة الجدول

يسلط الجدول التالي الضوء على الاختلافات الرئيسية بين استخدام ContainerLogV2 ومخطط ContainerLog.

اختلافات الميزة ContainerLog ContainerLogV2
مخطط التفاصيل في ContainerLog. تفاصيل في ContainerLogV2.
الأعمدة الإضافية هي:
- ContainerName
- PodName
- PodNamespace
- LogLevel1
- KubernetesMetadata2
إعداد قابل للتكوين فقط من خلال ConfigMap. قابل للتكوين من خلال كل من ConfigMap وDCR. 3
التسعير متوافق فقط مع سجلات التحليلات كاملة السعر. يدعم طبقة السجلات الأساسية منخفضة التكلفة بالإضافة إلى سجلات التحليلات.
الاستعلام يتطلب عمليات ربط متعددة مع جداول المخزون للاستعلامات القياسية. يتضمن بيانات تعريف حاوية وحاوية إضافية لتقليل تعقيد الاستعلام وعمليات الانضمام.
متعدد الخطوط غير معتمد، يتم تقسيم الإدخالات متعددة الأسطر إلى صفوف متعددة. دعم التسجيل متعدد الأسطر للسماح بالإدخالات الموحدة المفردة للإخراج متعدد الأسطر.

1إذا كان LogMessage JSON صالحا ويحتوي على مفتاح يسمى مستوى، فسيتم استخدام قيمته. وإلا فإننا نستخدم نهج مطابقة الكلمات الأساسية المستندة إلى regex لاستنتاج LogLevel من LogMessage نفسه. لاحظ أنك قد ترى بعض التصنيفات الخاطئة حيث يتم استنتاج هذه القيمة.

2KubernetesMetadata هو عمود اختياري ويمكن تمكين مجموعة هذا الحقل باستخدام ميزة بيانات تعريف Kubernetes. قيمة هذا الحقل هي JSON ويحتوي على حقول مثل podLabels وpodAnnotations وpodUid و Image و ImageTag و Image repo.

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

إشعار

التصدير إلى Event Hub وحساب التخزين غير مدعوم إذا لم يكن LogMessage الوارد JSON صالحا. للحصول على أفضل أداء، نوصي ببعث سجلات الحاوية بتنسيق JSON.

تقييم التأثير على التنبيهات الحالية

قبل تمكين مخطط ContainerLogsV2 ، يجب تقييم ما إذا كان لديك أي قواعد تنبيه تعتمد على جدول ContainerLog . يجب تحديث أي من هذه التنبيهات لاستخدام الجدول الجديد.

للفحص بحثا عن التنبيهات التي تشير إلى جدول ContainerLog ، قم بتشغيل استعلام Azure Resource Graph التالي:

resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

تمكين مخطط ContainerLogV2

يمكنك تمكين مخطط ContainerLogV2 لنظام مجموعة إما باستخدام قاعدة تجميع البيانات (DCR) الخاصة بالمجموعة أو ConfigMap. إذا تم تمكين كلا الإعدادين، فإن ConfigMap له الأسبقية. يتم استيعاب سجلات Stdout وstderr فقط في جدول ContainerLog عند تعيين كل من DCR وConfigMap بشكل صريح على إيقاف التشغيل.

بيانات تعريف Kubernetes وتصفية السجلات

تحسن تصفية بيانات تعريف Kubernetes والسجلات مخطط ContainerLogsV2 مع المزيد من بيانات تعريف Kubernetes مثل PodLabels وPodAnnotations وPodUid والصورة و ImageID و ImageRepo و ImageTag. بالإضافة إلى ذلك، توفر ميزة تصفية السجلات إمكانات التصفية لكل من حاويات حمل العمل والنظام الأساسي (أي مساحات أسماء النظام). باستخدام هذه الميزات، يكتسب المستخدمون سياقا أكثر ثراء ورؤية محسنة لأحمال العمل الخاصة بهم.

الميزات الرئيسية

  • مخطط ContainerLogV2 المحسن مع حقول بيانات تعريف Kubernetes: تقدم بيانات تعريف سجلات Kubernetes حقول بيانات تعريف اختيارية أخرى تعزز تجربة استكشاف الأخطاء وإصلاحها باستخدام استعلامات Log Analytics البسيطة وتزيل الحاجة إلى الانضمام إلى الجداول الأخرى. تتضمن هذه الحقول معلومات أساسية مثل "PodLabels" و"PodAnnotations" و"PodUid" و"Image" و"ImageID" و"ImageRepo" و"ImageTag". من خلال إتاحة هذا السياق بسهولة، يمكن للمستخدمين استكشاف الأخطاء وإصلاحها وتحديد المشكلات بسرعة.

  • تكوين قائمة التضمين المخصص: يمكن للمستخدمين تخصيص حقول بيانات تعريف جديدة يريدون رؤيتها من خلال تحرير خريطة التكوين. لاحظ أنه يتم تجميع كافة حقول بيانات التعريف بشكل افتراضي عند metadata_collection تمكين وإذا كنت تريد تحديد حقول معينة، قم بإلغاء التعليق include_fields وحدد الحقول التي تحتاج إلى تجميع.

لقطة شاشة تعرض حقول بيانات التعريف.

  • مخطط ContainerLogV2 المحسن مع مستوى السجل: يمكن للمستخدمين الآن تقييم صحة التطبيق استنادا إلى مستويات الخطورة المرمزة بالألوان مثل CRITICAL أو ERROR أو WARNING أو INFO أو DEBUG أو TRACE أو UNKNOWN. إنها أداة حاسمة للاستجابة للحوادث والمراقبة الاستباقية. من خلال التمييز المرئي لمستويات الخطورة، يمكن للمستخدمين تحديد الموارد المتأثرة بسرعة. يبسط النظام المشفرة بالألوان عملية التحقيق ويسمح للمستخدمين بالتنقل لأسفل بشكل أكبر عن طريق تحديد اللوحة لتجربة استكشاف لمزيد من تصحيح الأخطاء. ومع ذلك، من المهم ملاحظة أن هذه الوظيفة قابلة للتطبيق فقط عند استخدام Grafana. إذا كنت تستخدم مساحة عمل Log Analytics، فإن LogLevel هو ببساطة عمود آخر في جدول ContainerLogV2.

  • تصفية السجل المستندة إلى التعليقات التوضيحية لأحمال العمل: تقنية تصفية السجل الفعالة من خلال التعليقات التوضيحية للجراب. يمكن للمستخدمين التركيز على المعلومات ذات الصلة دون التشويش. تمكن التصفية المستندة إلى التعليقات التوضيحية المستخدمين من استبعاد مجموعة السجلات لبعض القرون والحاويات عن طريق إضافة تعليق توضيحي إلى pod، مما يساعد على تقليل تكلفة تحليلات السجل بشكل كبير.

  • تصفية السجل المستندة إلى ConfigMap لسجلات النظام الأساسي (مساحات أسماء System Kubernetes): يتم إصدار سجلات النظام الأساسي بواسطة حاويات في مساحات أسماء النظام (أو مساحات أسماء مقيدة مماثلة). بشكل افتراضي، يتم استبعاد جميع سجلات الحاوية من مساحة اسم النظام لتقليل تكلفة Log Analytics. ومع ذلك، في سيناريوهات استكشاف الأخطاء وإصلاحها المحددة، تلعب سجلات الحاوية لحاوية النظام دورا حاسما. على سبيل المثال، ضع في اعتبارك حاوية coredns داخل مساحة اسم نظام kube. لتجميع السجلات (stdout وstderr) حصريا من نموذج kube-system لحاوية coredns، يمكنك تمكين الإعدادات التالية في configmap.

لقطة شاشة تعرض حقول التصفية.

  • لوحة معلومات Grafana للتصور: لا تعرض لوحة معلومات Grafana مرئيات مرمزة بالألوان لمستويات السجل بدءا من CRITICAL إلى UNKNOWN، بل تتعمق أيضا في حجم السجل ومعدل السجل وسجلات السجل والسجلات. يمكن للمستخدمين الحصول على تحليل حساس للوقت، ونتائج تحليلات ديناميكية لاتجاهات مستوى السجل بمرور الوقت، والمراقبة الحاسمة في الوقت الحقيقي. كما نقدم تصنيفا تفصيليا حسب الكمبيوتر والجراب والحاوية، ما يمكن التحليل المتعمق واستكشاف الأخطاء وإصلاحها المحدد. وأخيرا في تجربة جدول السجلات الجديدة، يمكن للمستخدمين عرض تفاصيل العمق مع عرض التوسيع، وعرض البيانات في كل عمود وتكبير المعلومات التي يريدون رؤيتها.

فيما يلي فيديو يعرض لوحة معلومات Grafana:

كيفية تمكين بيانات تعريف Kubernetes وتصفية السجلات

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

  1. الترحيل إلى مصادقة الهوية المدارة. اعرف المزيد.

  2. تأكد من تمكين ContainerLogV2. مجموعات مصادقة الهوية المدارة تم تمكين هذا المخطط بشكل افتراضي. إذا لم يكن الأمر كما هو، فمكن مخطط ContainerLogV2.

القيود

لوحة معلومات ContainerLogV2 Grafana غير مدعومة مع Basic Logs SKU على جدول ContainerLogV2.

تمكين بيانات تعريف Kubernetes

  1. قم بتنزيل configmap وتعديل الإعدادات من false إلى true كما هو موضح في لقطة الشاشة أدناه. لاحظ أنه يتم تجميع جميع حقول بيانات التعريف المدعومة بشكل افتراضي. إذا كنت ترغب في تجميع حقول معينة، فحدد الحقول المطلوبة في include_fields.

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

  1. تطبيق ConfigMap. راجع تكوين configmap لمعرفة المزيد حول نشر وتكوين ConfigMap.

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

لقطة شاشة تعرض containerlogv2.

الإلحاق بتجربة لوحة معلومات Grafana

  1. ضمن علامة التبويب نتائج التحليلات، حدد إعدادات المراقبة وإلحاقها بلوحة معلومات Grafana مع الإصدار 10.3.4+

لقطة شاشة تعرض إلحاق grafana.

  1. تأكد من أن لديك أحد أدوار Grafana مسؤول/المحرر/القارئ عن طريق التحقق من التحكم في الوصول (IAM). إذا لم يكن الأمر كذلك، فقم بإضافتها.

لقطة شاشة تعرض أدوار grafana.

  1. تأكد من أن مثيل Grafana الخاص بك لديه حق الوصول إلى مساحة عمل Azure Logs Analytics (LA). إذا لم يكن لديه حق الوصول، تحتاج إلى منح دور قارئ مراقبة مثيل Grafana إلى مساحة عمل LA.

لقطة شاشة تعرض grafana.

  1. انتقل إلى مساحة عمل Grafana واستورد لوحة معلومات ContainerLogV2 من معرض Grafana.

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

لقطة شاشة تعرض لوحة معلومات grafana.

إشعار

عند تحميل لوحة معلومات Grafana في البداية، قد تظهر بعض الأخطاء بسبب عدم تحديد المتغيرات بعد. لمنع تكرار ذلك، احفظ لوحة المعلومات بعد تحديد مجموعة من المتغيرات بحيث تصبح افتراضية في الفتح الأول.

تمكين التصفية المستندة إلى التعليق التوضيحي

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

  1. قم بتنزيل configmap وتعديل الإعدادات من false إلى true كما هو موضح في لقطة الشاشة أدناه.

لقطة شاشة تعرض التعليقات التوضيحية.

  1. تطبيق ConfigMap. راجع تكوين configmap لمعرفة المزيد حول نشر وتكوين ConfigMap.

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

تعليق توضيحي ‏‏الوصف
fluentbit.io/exclude: "true" يستبعد كلا من دفق stdout وstderr على جميع الحاويات في Pod
fluentbit.io/exclude_stdout: "true" يستبعد دفق stdout فقط على جميع الحاويات في Pod
fluentbit.io/exclude_stderr: "true" يستبعد دفق stderr فقط على جميع الحاويات في Pod
fluentbit.io/exclude_container1: "true" استبعاد كل من تدفقات stdout وstderr فقط للحاوية1 في الجراب
fluentbit.io/exclude_stdout_container1: "true" استبعاد stdout فقط للحاوية1 في الجراب

إشعار

تستند هذه التعليقات التوضيحية إلى البت بطلاقة. إذا كنت تستخدم حل مجموعة السجلات المستند إلى طلاقة مع عامل تصفية المكون الإضافي Kubernetes والاستبعاد المستند إلى التعليق التوضيحي، فإنه سيتوقف عن جمع السجلات من كل من Container Insights والحل الخاص بك.

فيما يلي مثال على fluentbit.io/exclude: "true" التعليق التوضيحي في مواصفات Pod:

apiVersion: v1 
kind: Pod 
metadata: 
 name: apache-logs 
 labels: 
  app: apache-logs 
 annotations: 
  fluentbit.io/exclude: "true" 
spec: 
 containers: 
 - name: apache 
  image: edsiper/apache_logs 

تصفية السجل المستندة إلى ConfigMap لسجلات النظام الأساسي (مساحات أسماء System Kubernetes)

  1. قم بتنزيل configmap وتعديل الإعدادات المتعلقة ب collect_system_pod_logs و exclude_namespaces.

على سبيل المثال، من أجل جمع سجلات stdout وstderr لحاوية coredns في مساحة اسم kube-system، تأكد من أن مساحة اسم نظام kube غير موجودة exclude_namespaces وأن هذه الميزة تقتصر فقط على مساحات أسماء النظام التالية: kube-system، gatekeeper-system، calico-system، azure-arc، kube-public و kube-node-lease namespaces.

لقطة شاشة تعرض حقول التصفية.

  1. تطبيق ConfigMap. راجع تكوين configmap لمعرفة المزيد حول نشر وتكوين ConfigMap.

تسجيل متعدد الأسطر في Container Insights

مع تمكين التسجيل متعدد الأسطر، يتم تجميع سجلات الحاوية المقسمة مسبقا معا وإرسالها كإدخالات مفردة إلى جدول ContainerLogV2. إذا كان خط السجل المخيط أكبر من 64 كيلوبايت، فسيتم اقتطاعه بسبب حدود مساحة عمل Log Analytics. تحتوي هذه الميزة أيضا على دعم لتتبعات مكدس .NET وGo وPython وJava، والتي تظهر كإدخالات مفردة في جدول ContainerLogV2. تمكين التسجيل متعدد الأسطر باستخدام ConfigMap كما هو موضح في تكوين جمع البيانات في نتائج تحليلات الحاوية باستخدام ConfigMap.

إشعار

يتميز التكوين الآن بخيار مواصفات اللغة، حيث يمكن للعملاء تحديد اللغات التي يهتمون بها فقط. يمكن تمكين هذه الميزة عن طريق تحرير اللغات في خيار stacktrace_languages في خريطة التكوين.

تظهر لقطات الشاشة التالية التسجيل متعدد الأسطر لتتبع مكدس استثناء Go:

تم تعطيل التسجيل متعدد الأسطر

لقطة شاشة تعرض تعطيل تسجيل متعدد الأسطر.

تمكين التسجيل متعدد الأسطر

لقطة شاشة تعرض تمكين متعدد الأسطر.

تتبع مكدس Java

لقطة شاشة تعرض تمكين متعدد الأسطر ل Java.

تتبع مكدس Python

لقطة شاشة تعرض تمكين متعدد الأسطر ل Python.

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