مشاركة عبر


مراقبة سجلات مستوى البيانات ومستوى التحكم في شبكة تطبيقات Azure Kubernetes (المعاينة)

مهم

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

توفر شبكة تطبيقات Azure Kubernetes نوعين من السجلات يمكنك تكوينهما بناء على متطلبات المراقبة وحل المشكلة: سجلات مستوى البياناتوسجلات مستوى التحكم.

  • سجلات مستوى البيانات: تشمل سجلات من أحمال عمل التطبيقات، applink-system ومكونات مساحة الاسم، وسجلات الوصول إلى وكيل Envoy.
  • سجلات مستوى التحكم: تتضمن سجلات Istiod من مكونات مستوى التحكم في شبكة تطبيقات Azure Kubernetes.

تسجيل شبكة تطبيقات Azure Kubernetes معطل بشكل افتراضي. تشرح هذه المقالة كيفية تمكين كلا نوعي التسجيل وعرضهما في Azure Monitor.

تعيين متغيرات البيئة

  • حدد متغيرات البيئة لسير العمل الذي اخترته باستخدام الأوامر التالية:

    # Set if specifying an existing or creating a new Log Analytics workspace
    export LAW_NAME=<log-analytics-workspace-name>
    
    # Set for resource group, location, and AKS cluster name
    export AKS_RG=<aks-resource-group>
    export LOCATION=<location>
    export CLUSTER_NAME=<aks-cluster-name>
    
    # Set for Azure Kubernetes Application Network member resource group, name, and member name
    export APPNET_RG=<appnet-resource-group>
    export APPNET_NAME=<appnet-name>
    export APPNET_MEMBER_NAME=<appnet-member-name>
    

تمكين سجلات مستوى البيانات

سجلات مستوى البيانات تشمل سجلات من أحمال العمل/التطبيقات وأحمال applink-system العمل (Ztunnel و Istio CNI). إضافة Azure Container Insights هي الطريقة المفضلة لتفعيل وعرض السجلات لاستكشاف المشكلة.

عند تفعيل سجلات مستوى البيانات، لديك خيار تحديد مساحة عمل لتحليلات السجلات الحالية، أو استخدام مساحة العمل الافتراضية لمجموعة الموارد الخاصة بك، أو إنشاء مساحة عمل جديدة.

أنشئ مساحة عمل جديدة لتحليلات السجلات

  • إذا أنشأت مساحة عمل جديدة لتحليلات السجلات، استخدم az monitor log-analytics workspace create الأمر:

    az monitor log-analytics workspace create \
        --resource-group $AKS_RG \
        --workspace-name $LAW_NAME \
        --location $LOCATION
    

فعل إضافة Container Insights على عنقود AKS الخاص بك

  • فعل إضافة Container Insights لمجموعة أعضاء شبكة تطبيقات Azure Kubernetes (مع حذف معرف مساحة العمل اختياريا) باستخدام az aks enable-addons الأمر.

     az aks enable-addons \
      --addon monitoring \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --workspace-resource-id /subscriptions/$SUBSCRIPTION/resourcegroups/$AKS_RG/providers/microsoft.operationalinsights/workspaces/$LAW_NAME
    

عرض السجلات

  • عرض السجلات من خلال الانتقال إلى مساحة عمل تحليلات السجلات وتشغيل الاستعلام التالي:

    ContainerLogV2
    | where PodNamespace == "applink-system"
    

سجلات وصول المبعوث

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

  1. في YAML أدناه، حدد مساحة الأسماء التي تريد تفعيل تسجيل الوصول إلى Envoy فيها. لسجلات الوصول إلى Envoy على مستوى الشبكة، قم بإزالة مساحة الاسم من البيانات الوصفية.

    cat <<EOF | kubectl apply -n default -f -
    apiVersion: telemetry.istio.io/v1
    kind: Telemetry
    metadata:
      name: mesh-logging-default
      namespace: default
    spec:
      accessLogging:
      - providers:
        - name: envoy
    EOF
    

    ستكون سجلات الوصول إلى Envoy متاحة في مساحة عمل تحليلات السجلات حيث تم تفعيل إضافة Container Insights الإضافية.

  2. عرض سجلات الوصول إلى Envoy من خلال الانتقال إلى مساحة عمل تحليلات السجلات وتشغيل الاستعلام التالي:

    ContainerLogV2
    | where TimeGenerated > ago(45m)
    | where PodName contains "gateway"
    | take 10
    

تمكين سجلات مستوى التحكم

لتمكين سجلات مستوى التحكم، تقوم بإنشاء إعداد تشخيصي وإرسال السجلات إلى مساحة عمل تحليلات السجل.

  1. قم بتعيين متغير بيئة لاسم إعداد التشخيص باستخدام الأمر التالي:

    export DS_NAME=<diagnostic-settings-name>
    
  2. أنشئ إعداد تشخيصي لمصدر عضو شبكة تطبيقات Azure Kubernetes الخاص بك وحدد مساحة عمل Log Analytics كوجهة باستخدام الأمر az monitor diagnostic-settings create .

    az monitor diagnostic-settings create \
    --resource /subscriptions/$SUBSCRIPTION/resourceGroups/$APPNET_RG/providers/Microsoft.AppLink/appLinks/$APPNET_NAME/appLinkMembers/$APPNET_MEMBER_NAME \
    --workspace /subscriptions/$SUBSCRIPTION/resourcegroups/$AKS_RG/providers/microsoft.operationalinsights/workspaces/$LAW_NAME \
    --logs "[{category:istiod,enabled:true}]" \
    --name $DS_NAME
    
  3. بمجرد تفعيلها، انتقل إلى مساحة عمل تحليلات السجلات وقم بتنفيذ الاستعلام التالي:

    ملحوظة

    $appnet_member_resourceId يجب أن يكون بصيغة : /subscriptions/$subscription/resourceGroups/$appnet_rg/providers/microsoft.applink/applinks/$appnet_name/applinkmembers/$appnet_member_name.

    MeshControlPlane
    | where TimeGenerated > ago(1h)
    | where _ResourceId == $appnet_member_resourceId // appnet member resourceId
    

جداول السجل والمخطط

الجداول التالية تحتوي على سجلات شبكة تطبيقات Azure Kubernetes في مساحة عمل تحليلات السجلات الخاصة بك:

جدول السجل الوصف
ContainerLogV2 يحتوي على سجلات التطبيق/عبء العمل الخاص بك
MeshControlPlane يحتوي على سجلات إستيود

Schema

للعثور على ContainerLogV2 المخطط، راجع أعمدة ContainerLogV2.

MeshControlPlane هو جدول مخصص يحتوي على المخطط التالي:

# اسم العمود النوع
0 معرف المستأجر string
1 تم إنشاء الوقت التاريخ والوقت
2 الفئة string
3 المستوى string
4 الرسالة string
5 الحاوية string
6 PodName string
7 نظام المصدر string
8 النوع string
9 _ResourceId string

نماذج الاستعلامات

تصفية سجلات البيانات حسب معرف موارد عنقود AKS

  • تصفية السجلات بناء على معرف موارد العنقود المدار من AKS في جدول ContainerLogV2 باستخدام الاستعلام التالي:

    ContainerLogV2
    | where TimeGenerated > ago(45m)
    | where _ResourceId == $aks_cluster_resource_id // managed cluster resourceId
    

تصفية سجلات بواسطة معرف موارد عضو شبكة Azure Kubernetes Application Network

  • تصفية السجلات بناء على معرف مورد عضو شبكة تطبيقات Azure Kubernetes في جدول MeshControlPlane لسجلات مستوى التحكم باستخدام الاستعلام التالي:

    MeshControlPlane
    | where TimeGenerated > ago(45m)
    | where Level == "ERROR"
    | where _ResourceId == $appnet_member_resourceId // appnet member resourceId
    

    تظهر لقطة الشاشة التالية مثالا على أخطاء Application Network Istiod في سجلات Azure Monitor:

    لقطة شاشة لأمثلة أخطاء Application Network Istiod في سجلات Azure Monitor.

لمزيد من المعلومات حول قابلية الملاحظة والمراقبة لشبكة تطبيقات Azure Kubernetes، راجع المقالات التالية: