Monitorowanie dzienników płaszczyzny danych i płaszczyzny sterowania w usłudze Azure Kubernetes Application Network (wersja zapoznawcza)

Ważna

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:

Usługa Azure Kubernetes Application Network udostępnia dwa typy rejestrowania, które można skonfigurować na podstawie wymagań dotyczących monitorowania i rozwiązywania problemów: dzienniki płaszczyzny danych i dzienniki płaszczyzny sterowania.

  • Dzienniki płaszczyzny danych: obejmują dzienniki obciążeń aplikacji, składniki przestrzeni nazw i dzienniki dostępu proxy Envoy.
  • Dzienniki płaszczyzny sterowania: uwzględnij dzienniki Istiod ze składników płaszczyzny sterowania w sieci aplikacji Platformy Azure Kubernetes.

Rejestrowanie sieci aplikacji platformy Azure Kubernetes jest domyślnie wyłączone. W tym artykule opisano sposób włączania obu typów rejestrowania i wyświetlania ich w usłudze Azure Monitor.

Ustawianie zmiennych środowiskowych

  • Ustaw zmienne środowiskowe dla wybranego przepływu pracy przy użyciu następujących poleceń:

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

Włącz dzienniki płaszczyzny danych

Dzienniki płaszczyzny danych obejmują dzienniki z obciążeń/aplikacji i applink-system obciążeń (Ztunnel i Istio CNI). Dodatek Azure Container Insights jest preferowanym sposobem włączania i wyświetlania dzienników na potrzeby rozwiązywania problemów.

Podczas włączania dzienników płaszczyzny danych możesz określić istniejący obszar roboczy usługi Log Analytics, użyć domyślnego obszaru roboczego dla grupy zasobów lub utworzyć nowy obszar roboczy.

Tworzenie nowego obszaru roboczego usługi Log Analytics

  • Jeśli tworzysz nowy obszar roboczy usługi Log Analytics, użyj az monitor log-analytics workspace create polecenia :

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

Włącz add-on Container Insights na klastrze AKS.

  • Włącz dodatek Container Insights dla klastra członkowskiego usługi Azure Kubernetes Application Network (opcjonalnie pomijając identyfikator obszaru roboczego) przy użyciu polecenia 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
    

Wyświetl dzienniki

  • Wyświetl dzienniki, przechodząc do obszaru roboczego usługi Log Analytics i uruchamiając następujące zapytanie:

    ContainerLogV2
    | where PodNamespace == "applink-system"
    

Dzienniki dostępu do usługi Envoy

W niektórych przypadkach może być konieczne sprawdzenie dzienników dostępu usługi Envoy po wygenerowaniu ruchu dla aplikacji/obciążeń. Aby włączyć dzienniki dostępu Envoy, użyj API Telemetrii.

  1. W poniższym pliku YAML określ przestrzeń nazw, w której chcesz włączyć rejestrowanie dostępu usługi Envoy. W przypadku dzienników dostępu do usługi Envoy obejmującej siatkę usuń przestrzeń nazw z metadanych.

    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
    

    Dzienniki dostępu usługi Envoy będą dostępne w obszarze roboczym usługi Log Analytics, w którym włączono dodatek Container Insights.

  2. Wyświetl dzienniki dostępu usługi Envoy, przechodząc do obszaru roboczego usługi Log Analytics i uruchamiając następujące zapytanie:

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

Włącz dzienniki płaszczyzny sterowania

Aby włączyć dzienniki płaszczyzny sterowania, należy utworzyć ustawienie diagnostyczne i wysłać dzienniki do obszaru roboczego usługi Log Analytics.

  1. Ustaw zmienną środowiskową dla nazwy ustawienia diagnostycznego przy użyciu następującego polecenia:

    export DS_NAME=<diagnostic-settings-name>
    
  2. Utwórz ustawienie diagnostyczne dla zasobu członkowskiego usługi Azure Kubernetes Application Network i określ obszar roboczy usługi Log Analytics jako miejsce docelowe przy użyciu az monitor diagnostic-settings create polecenia .

    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. Po włączeniu przejdź do obszaru roboczego usługi Log Analytics i uruchom następujące zapytanie:

    Uwaga / Notatka

    $appnet_member_resourceId powinien mieć 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
    

Tabele logów i schemat

Poniższe tabele zawierają dzienniki usługi Azure Kubernetes Application Network w obszarze roboczym usługi Log Analytics:

Tabela logów Opis
ContainerLogV2 Zawiera dzienniki aplikacji/obciążenia
MeshControlPlane Zawiera dzienniki Istiod

schemat

Aby znaleźć ContainerLogV2 schemat, zobacz Kolumny ContainerLogV2.

MeshControlPlane jest tabelą niestandardową z następującym schematem:

# Nazwa kolumny Typ
0 Identyfikator najemcy ciąg
1 TimeGenerated data/godzina
2 Kategoria ciąg
3 Level ciąg
4 Message ciąg
5 Pojemnik ciąg
6 PodName ciąg
7 System źródłowy ciąg
8 Typ ciąg
9 _ResourceId (Identyfikator Zasobu) ciąg

Przykładowe zapytania

Filtrowanie dzienników według identyfikatora zasobu klastra AKS

  • Filtruj dzienniki na podstawie identyfikatora zasobu klastra zarządzanego AKS w tabeli ContainerLogV2 przy użyciu następującego zapytania:

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

Filtrowanie dzienników według identyfikatora zasobu członka Azure Kubernetes Application Network

  • Filtruj dzienniki na podstawie identyfikatora zasobu członkowskiego w usłudze Azure Kubernetes w tabeli MeshControlPlane dla dzienników płaszczyzny kontrolnej, używając następującego zapytania:

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

    Poniższy zrzut ekranu przedstawia przykład błędów istiod sieci aplikacji w dziennikach usługi Azure Monitor:

    Zrzut ekranu przykładowych błędów Istiod w sieci aplikacji w dziennikach Azure Monitor.

Aby uzyskać więcej informacji na temat możliwości i monitorowania usługi Azure Kubernetes Application Network, zobacz następujące artykuły: