Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
AKS-Vorschaufunktionen sind auf Selbstbedienungsbasis und freiwillig verfügbar. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
Das Azure Kubernetes-Anwendungsnetzwerk bietet zwei Arten von Protokollierung, die Sie basierend auf Ihren Überwachungs- und Problembehandlungsanforderungen konfigurieren können: Datenebenenprotokolle und Steuerungsebenenprotokolle.
-
Protokolle der Datenebene: Schließen Sie Protokolle aus Anwendungsworkloads,
applink-systemNamespacekomponenten und Envoy-Proxyzugriffsprotokollen ein. - Steuerungsebenenprotokolle: Schließen Sie Istiod-Protokolle aus den Komponenten der Azure Kubernetes-Anwendungsnetzwerksteuerungsebene ein.
Die Azure Kubernetes-Anwendungsnetzwerkprotokollierung ist standardmäßig deaktiviert. In diesem Artikel wird beschrieben, wie Sie beide Protokollierungstypen aktivieren und in Azure Monitor anzeigen.
Festlegen von Umgebungsvariablen
Legen Sie Umgebungsvariablen für den ausgewählten Workflow mithilfe der folgenden Befehle fest:
# 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>
Aktivieren von Datenebenenprotokollen
Datenebenenprotokolle enthalten Protokolle aus Ihren Workloads/Anwendungen und applink-system-Workloads (Ztunnel und Istio CNI). Das Azure Container Insights-Add-On ist die bevorzugte Methode zum Aktivieren und Anzeigen von Protokollen für die Problembehandlung.
Wenn Sie Datenebenenprotokolle aktivieren, haben Sie die Möglichkeit, einen vorhandenen Log Analytics-Arbeitsbereich anzugeben, den Standardarbeitsbereich für Ihre Ressourcengruppe zu verwenden oder einen neuen Arbeitsbereich zu erstellen.
Erstellen eines neuen Log Analytics-Arbeitsbereichs
Wenn Sie einen neuen Log Analytics-Arbeitsbereich erstellen, verwenden Sie den
az monitor log-analytics workspace createFolgenden Befehl:az monitor log-analytics workspace create \ --resource-group $AKS_RG \ --workspace-name $LAW_NAME \ --location $LOCATION
Aktivieren Sie das Containerüberwachungs-Add-On auf Ihrem AKS-Cluster
Aktivieren Sie das Container Insights-Add-On für Ihren Azure Kubernetes Application Network-Membercluster (optional weglassen der Arbeitsbereichs-ID) mithilfe des
az aks enable-addonsBefehls.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
Protokolle anzeigen
Zeigen Sie die Protokolle an, indem Sie zum Log Analytics-Arbeitsbereich navigieren und die folgende Abfrage ausführen:
ContainerLogV2 | where PodNamespace == "applink-system"
Envoy-Zugriffsprotokolle
In einigen Fällen müssen Sie möglicherweise Envoy-Zugriffsprotokolle untersuchen, wenn Datenverkehr für Ihre Anwendungen/Workloads generiert wird. Verwenden Sie die Telemetrie-API, um Envoy-Zugriffsprotokolle zu aktivieren.
Geben Sie im folgenden YAML den Namespace an, in dem Sie die Envoy-Zugriffsprotokollierung aktivieren möchten. Entfernen Sie für mesh-weite Envoy-Zugriffsprotokolle den Namespace aus den Metadaten.
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 EOFEnvoy-Zugriffsprotokolle sind im Log Analytics-Arbeitsbereich verfügbar, in dem das Container Insights-Add-On aktiviert wurde.
Zeigen Sie die Protokolle des Envoy-Zugriffs an, indem Sie zum Log Analytics-Arbeitsbereich navigieren und die folgende Abfrage ausführen:
ContainerLogV2 | where TimeGenerated > ago(45m) | where PodName contains "gateway" | take 10
Aktivieren von Steuerungsebenenprotokollen
Um Steuerungsebenenprotokolle zu aktivieren, erstellen Sie eine Diagnoseeinstellung und senden Protokolle an den Log Analytics-Arbeitsbereich.
Legen Sie eine Umgebungsvariable für den Namen Ihrer Diagnoseeinstellung mithilfe des folgenden Befehls fest:
export DS_NAME=<diagnostic-settings-name>Erstellen Sie eine Diagnoseeinstellung für Ihre Azure Kubernetes Application Network-Memberressource, und geben Sie den Log Analytics-Arbeitsbereich als Ziel mit dem
az monitor diagnostic-settings createBefehl an.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_NAMENavigieren Sie nach der Aktivierung zum Log Analytics-Arbeitsbereich, und führen Sie die folgende Abfrage aus:
Hinweis
$appnet_member_resourceIdsollte im Format vorliegen:/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
Protokolltabellen und -schema
Die folgenden Tabellen enthalten Azure Kubernetes-Anwendungsnetzwerkprotokolle in Ihrem Log Analytics-Arbeitsbereich:
| Logbuch-Tabelle | Beschreibung |
|---|---|
ContainerLogV2 |
Enthält Ihre Anwendungs-/Workload-Protokolle |
MeshControlPlane |
Enthält Istiod-Protokolle |
Schema
Informationen zum Suchen des ContainerLogV2 Schemas finden Sie in den Spalten "ContainerLogV2".
MeshControlPlane ist eine benutzerdefinierte Tabelle mit dem folgenden Schema:
| # | Spaltenname | Typ |
|---|---|---|
| 0 | Mieter-ID | Schnur |
| 1 | TimeGenerated | Datum/Uhrzeit |
| 2 | Kategorie | Schnur |
| 3 | Grad | Schnur |
| 4 | Meldung | Schnur |
| 5 | Container | Schnur |
| 6 | PodName | Schnur |
| 7 | SourceSystem | Schnur |
| 8 | Typ | Schnur |
| 9 | _ResourceId | Schnur |
Beispielabfragen
Filtern von Protokollen nach AKS-Clusterressourcen-ID
Filtern Sie Protokolle mithilfe der folgenden Abfrage basierend auf Ihrer AKS-verwalteten Clusterressource-ID in der Tabelle "ContainerLogV2".
ContainerLogV2 | where TimeGenerated > ago(45m) | where _ResourceId == $aks_cluster_resource_id // managed cluster resourceId
Protokolle nach Azure Kubernetes Application Network-Mitgliedsressourcen-ID filtern
Filtern Sie Protokolle basierend auf Ihrer Azure Kubernetes Application Network-Ressourcen-ID in der Tabelle "MeshControlPlane" für Steuerebenenprotokolle mithilfe der folgenden Abfrage:
MeshControlPlane | where TimeGenerated > ago(45m) | where Level == "ERROR" | where _ResourceId == $appnet_member_resourceId // appnet member resourceIdDer folgende Screenshot zeigt ein Beispiel für Fehler im Zusammenhang mit “Application Network Istiod” in den Azure Monitor Protokollen.
Verwandte Inhalte
Weitere Informationen zu Azure Kubernetes Application Network Observability und Monitoring finden Sie in den folgenden Artikeln: