Memantau log pada bidang data dan bidang kontrol di Azure Kubernetes Application Network (pratinjau)

Penting

Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Pratinjau AKS sebagian didukung oleh dukungan pelanggan berdasarkan upaya terbaik yang dapat dilakukan. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:

Azure Kubernetes Application Network menyediakan dua jenis pengelogan yang dapat Anda konfigurasi berdasarkan persyaratan pemantauan dan pemecahan masalah Anda: log bidang data dan log sarana kontrol.

  • Log lintasan data: Menyertakan log dari beban kerja aplikasi, applink-system komponen namespace, dan log akses proksi Envoy.
  • Log ruang kendali: Sertakan log Istiod dari komponen ruang kendali Azure Kubernetes Application Network.

Pengelogan Azure Kubernetes Application Network dinonaktifkan secara default. Artikel ini menjelaskan cara mengaktifkan kedua jenis pengelogan dan melihatnya di Azure Monitor.

Atur variabel lingkungan

  • Atur variabel lingkungan untuk alur kerja yang Anda pilih menggunakan perintah berikut:

    # 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>
    

Mengaktifkan log lapisan data

Log data plane mencakup log dari beban kerja dan aplikasi Anda serta beban kerja applink-system (Ztunnel dan Istio CNI). Add-on Azure Container Insights adalah cara yang disukai untuk mengaktifkan dan melihat log untuk pemecahan masalah.

Saat mengaktifkan log bidang data, Anda memiliki opsi untuk menentukan ruang kerja Analitik Log yang ada, menggunakan ruang kerja default untuk grup sumber daya Anda, atau membuat ruang kerja baru.

Membuat ruang kerja Analitik Log baru

  • Jika membuat ruang kerja Analitik Log baru, gunakan az monitor log-analytics workspace create perintah :

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

Mengaktifkan add-on Container Insights pada kluster AKS Anda

  • Aktifkan add-on Container Insights untuk kluster anggota Azure Kubernetes Application Network (opsional tanpa ID ruang kerja) menggunakan perintah 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
    

Lihat log

  • Lihat log dengan menavigasi ke ruang kerja Analitik Log dan menjalankan kueri berikut:

    ContainerLogV2
    | where PodNamespace == "applink-system"
    

Log akses envoy

Dalam beberapa kasus, Anda mungkin perlu memeriksa log akses Envoy saat lalu lintas dihasilkan untuk aplikasi/beban kerja Anda. Untuk mengaktifkan log akses Envoy, gunakan API Telemetri.

  1. Pada YAML di bawah ini, tentukan namespace tempat Anda ingin mengaktifkan pengelogan akses Envoy. Untuk log akses Envoy di seluruh jaringan mesh, hapus namespace dari metadata.

    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
    

    Log akses Envoy akan tersedia di workspace Log Analytics di mana add-on Container Insights telah diaktifkan.

  2. Lihat log akses Envoy dengan menavigasi ke ruang kerja Analitik Log dan menjalankan kueri berikut:

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

Mengaktifkan log pesawat kontrol

Untuk mengaktifkan log bidang kontrol, Anda membuat pengaturan diagnostik dan mengirim log ke ruang kerja Log Analitik.

  1. Atur variabel lingkungan untuk nama pengaturan diagnostik Anda menggunakan perintah berikut:

    export DS_NAME=<diagnostic-settings-name>
    
  2. Buat pengaturan diagnostik untuk sumber daya anggota Azure Kubernetes Application Network Anda dan tentukan ruang kerja Analitik Log sebagai tujuan menggunakan az monitor diagnostic-settings create perintah .

    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. Setelah diaktifkan, navigasikan ke ruang kerja Analitik Log dan jalankan kueri berikut:

    Nota

    $appnet_member_resourceId harus dalam format: /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
    

Tabel log dan skema

Tabel berikut berisi log Azure Kubernetes Application Network di ruang kerja Analitik Log Anda:

Tabel catatan log Deskripsi
ContainerLogV2 Berisi log aplikasi/beban kerja Anda
MeshControlPlane Berisi log Istiod

Skema

Untuk menemukan ContainerLogV2 skema, lihat kolom ContainerLogV2.

MeshControlPlane adalah tabel kustom dengan skema berikut:

# Nama kolom Tipe
0 ID Penyewa string
1 TimeGenerated tanggalwaktu
2 Kategori string
3 Tingkat string
4 Pesan string
5 Kontainer string
6 PodName string
7 SourceSystem string
8 Tipe string
9 _ResourceId string

Contoh pertanyaan

Memfilter log menurut ID sumber daya kluster AKS

  • Filter log berdasarkan ID sumber daya kluster terkelola AKS Anda dalam tabel ContainerLogV2 menggunakan kueri berikut:

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

Memfilter log berdasarkan ID sumber daya anggota Azure Kubernetes Application Network

  • Filter log berdasarkan ID sumber daya anggota Aplikasi Jaringan Azure Kubernetes Anda dalam tabel MeshControlPlane untuk log pesawat kontrol menggunakan kueri berikut:

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

    Cuplikan layar berikut menunjukkan contoh kesalahan Istiod Jaringan Aplikasi di Log Azure Monitor:

    Cuplikan layar contoh kesalahan Istiod Jaringan Aplikasi di log Azure Monitor.

Untuk informasi selengkapnya tentang pengamatan dan pemantauan Azure Kubernetes Application Network, lihat artikel berikut: