Logboeken van gegevensvlak en besturingsvlak bewaken in Azure Kubernetes Application Network (preview)

Belangrijk

AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning naar best vermogen. Zodoende zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:

Azure Kubernetes Application Network biedt twee typen logboekregistratie die u kunt configureren op basis van uw bewakings- en probleemoplossingsvereisten: logboeken van gegevensvlakken en logboeken van besturingsvlak.

  • Datavlaklogboeken: neem logboeken op van applicatieworkloads, naamruimtecomponenten en Envoy-proxytoeganglogboeken.
  • Controlelaaglogboeken: Neem Istiod-logboeken op uit de onderdelen van de controlelaag van Azure Kubernetes Application Network.

Logboekregistratie van Azure Kubernetes Application Network is standaard uitgeschakeld. In dit artikel wordt beschreven hoe u beide typen logboekregistratie inschakelt en weergeeft in Azure Monitor.

Omgevingsvariabelen instellen

  • Stel omgevingsvariabelen in voor uw geselecteerde werkstroom met behulp van de volgende opdrachten:

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

Logboeken van gegevensvlak inschakelen

Logboeken voor gegevensvlakken bevatten logboeken van uw workloads/toepassingen en applink-system workloads (Ztunnel en Istio CNI). De Azure Container Insights-invoegtoepassing is de beste manier om logboeken in te schakelen en weer te geven voor probleemoplossing.

Wanneer u logboeken voor gegevensvlakken inschakelt, kunt u een bestaande Log Analytics-werkruimte opgeven, de standaardwerkruimte voor uw resourcegroep gebruiken of een nieuwe werkruimte maken.

Een nieuwe Log Analytics-werkruimte maken

  • Als u een nieuwe Log Analytics-werkruimte maakt, gebruikt u de az monitor log-analytics workspace create opdracht:

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

De Container Insights-add-on inschakelen op uw AKS-cluster

  • Schakel de Container Insights-invoegtoepassing in voor uw Azure Kubernetes Application Network-lidcluster (eventueel de werkruimte-id weglaten) met behulp van de az aks enable-addons opdracht.

     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
    

Logboeken weergeven

  • Bekijk de logboeken door naar de Log Analytics-werkruimte te navigeren en de volgende query uit te voeren:

    ContainerLogV2
    | where PodNamespace == "applink-system"
    

Logboeken voor toegang tot Envoy

U moet mogelijk de Envoy-toegangslogboeken onderzoeken wanneer verkeer wordt gegenereerd voor uw toepassingen/werkbelastingen. Als u Envoy-toegangslogboeken wilt inschakelen, gebruikt u de Telemetrie-API.

  1. Geef in de onderstaande YAML de naamruimte op waar u logboekregistratie van Envoy-toegang wilt inschakelen. Voor mesh-brede Envoy-toegangslogboeken verwijdert u de naamruimte uit de metagegevens.

    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-toegangslogboeken zijn beschikbaar in de Log Analytics-werkruimte waar de Container Insights-invoegtoepassing is ingeschakeld.

  2. Bekijk de envoy-toegangslogboeken door naar de Log Analytics-werkruimte te navigeren en de volgende query uit te voeren:

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

Logboeken van besturingsvlak inschakelen

Als u logboeken van het besturingsvlak wilt inschakelen, maakt u een diagnostische instelling en verzendt u logboeken naar de Log Analytics-werkruimte.

  1. Stel een omgevingsvariabele in voor de naam van uw diagnostische instelling met behulp van de volgende opdracht:

    export DS_NAME=<diagnostic-settings-name>
    
  2. Maak een diagnostische instelling voor uw Azure Kubernetes Application Network-resource en geef de Log Analytics-werkruimte op als bestemming met behulp van de az monitor diagnostic-settings create opdracht.

    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. Zodra deze optie is ingeschakeld, gaat u naar de Log Analytics-werkruimte en voert u de volgende query uit:

    Opmerking

    $appnet_member_resourceId moet de volgende notatie hebben: /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
    

Logboektabellen en schema

De volgende tabellen bevatten Azure Kubernetes Application Network-logboeken in uw Log Analytics-werkruimte:

Logaritmetafel Beschrijving
ContainerLogV2 Bevat uw toepassings-/workloadlogboeken
MeshControlPlane Bevat Istiod-logboeken

Schema

Zie ContainerLogV2 om het schema te vinden.

MeshControlPlane is een aangepaste tabel met het volgende schema:

# Kolomnaam Typ
0 huurder-ID touw
1 TimeGenerated datetime
2 Categorie touw
3 Niveau touw
4 Bericht touw
5 Container touw
6 PodNaam touw
7 SourceSystem touw
8 Typ touw
9 HulpbronId touw

Voorbeeldvragen

Logboeken filteren op resource-id van AKS-cluster

  • Filter logboeken op basis van de resource-ID van uw door AKS beheerde cluster in de tabel ContainerLogV2, gebruik de volgende query.

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

Logboeken filteren op resource-id van leden van Azure Kubernetes Application Network

  • Filter logboeken op basis van de resource-id van uw Azure Kubernetes Application Network-lid in de tabel MeshControlPlane voor logboeken van het besturingsvlak met behulp van de volgende query:

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

    In de volgende schermopname ziet u een voorbeeld van de toepassingsnetwerkfouten in Azure Monitor-logboeken:

    Schermopname van voorbeeld van Application Network Istiod-fouten in Azure Monitor-logboeken.

Zie de volgende artikelen voor meer informatie over de waarneembaarheid en bewaking van Azure Kubernetes Application Network: