Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som beskrivs i Kubernetes-övervakning i Azure Monitor fungerar flera funktioner i Azure Monitor tillsammans för att tillhandahålla fullständig övervakning av dina AkS-kluster (Azure Kubernetes Service). Den här artikeln beskriver hur du aktiverar följande funktioner för AKS-kluster:
- Prometheus mätvärden
- Hanterad Grafana
- Containerloggning
- Kontrollplansloggar
Förutsättningar
- Du behöver minst deltagaråtkomst till klustret för registrering.
- Du behöver Övervakningsläsare eller Övervakningsdeltagare för att visa data när övervakning har aktiverats.
Skapa arbetsytor
I följande tabell beskrivs de arbetsytor som krävs för att stödja de Azure Monitor-funktioner som är aktiverade i den här artikeln. Om du inte redan har en befintlig arbetsyta av varje typ kan du skapa dem som en del av registreringsprocessen. Se Designa en Log Analytics-arbetsytearkitektur för vägledning om hur många arbetsytor som ska skapas och var de ska placeras.
| Egenskap | Arbetsyta | Anteckningar |
|---|---|---|
| Hanterad Prometheus | Azure Monitor-arbetsyta | Om du inte anger en befintlig Azure Monitor-arbetsyta vid registrering används standardarbetsytan för resursgruppen. Om det inte redan finns någon standardarbetsyta i klustrets region skapas en med ett namn i formatet DefaultAzureMonitorWorkspace-<mapped_region> i en resursgrupp med namnet DefaultRG-<cluster_region>.Contributor behörighet räcker för att aktivera tillägget för att skicka data till Azure Monitor-arbetsytan. Du behöver Owner nivåbehörighet för att länka din Azure Monitor-arbetsyta för att visa mått i Azure Managed Grafana. Detta krävs eftersom användaren som kör registreringssteget måste kunna ge rollen Azure Managed Grafana System Identity Monitoring Reader på Azure Monitor-arbetsytan för att kunna köra frågor mot måtten. |
| Containerloggning Kontrollplansloggar |
Log Analytics-arbetsyta | Du kan koppla ett kluster till en Log Analytics-arbetsyta i en annan Azure-prenumeration i samma Microsoft Entra-klientorganisation, men du måste använda Azure CLI eller en Azure Resource Manager-mall. Du kan för närvarande inte utföra den här konfigurationen med Azure Portal. Om du ansluter ett befintligt kluster till en Log Analytics-arbetsyta i en annan prenumeration måste resursprovidern Microsoft.ContainerService vara registrerad i prenumerationen med Log Analytics-arbetsytan. Mer information finns i Registrera en resursprovider. Om du inte anger en befintlig Log Analytics-arbetsyta används standardarbetsytan för resursgruppen. Om det inte redan finns någon standardarbetsyta i klustrets region skapas en med ett namn i formatet DefaultWorkspace-<GUID>-<Region>.En lista över mappningspar som stöds som ska användas för standardarbetsytan finns i Regionmappningar som stöds av Container Insights. Mer information om hur du konfigurerar arbetsytan med nätverkssäkerhetsperimeter finns i Konfigurera Azure Monitor med nätverkssäkerhetsperimeter . |
| Hanterad Grafana | Azure Grafana-hanterad arbetsyta | Länka grafana-arbetsytan till din Azure Monitor-arbetsyta för att göra Prometheus-måtten som samlats in från klustret tillgängliga för Grafana-instrumentpaneler. |
Aktivera Prometheus-mått och containerloggning
När du aktiverar Prometheus och containerloggning på ett kluster installeras en containerbaserad version av Azure Monitor-agenten i klustret. Du kan konfigurera dessa funktioner samtidigt i ett nytt eller befintligt kluster eller aktivera varje funktion separat.
Aktivera Managed Grafana för klustret samtidigt som du aktiverar insamling av Prometheus-mått. Se Länka en Grafana-arbetsyta för alternativ för att ansluta din Azure Monitor-arbetsyta och Azure Managed Grafana-arbetsyta.
Förutsättningar
- Klustret måste använda hanterad identitetsautentisering.
- Följande resursprovidrar måste registreras i prenumerationen på klustret och Azure Monitor-arbetsytan:
- Microsoft.ContainerService
- Microsoft.Insights
- Microsoft.AlertsManagement (meddelandehantering)
- Microsoft.Monitor
- Följande resursprovidrar måste registreras i prenumerationen för Grafana-arbetsytan:
- Microsoft Dashboard
Förutsättningar
- Hanterad identitetsautentisering är standard i CLI version 2.49.0 eller senare.
- Aks-preview-tillägget måste avinstalleras från AKS-kluster med hjälp av kommandot
az extension remove --name aks-preview.
Prometheus mätvärden
Använd -enable-azure-monitor-metrics alternativet med az aks create eller az aks update beroende på om du skapar ett nytt kluster eller uppdaterar ett befintligt kluster för att installera tilläggsprogrammet för metrik som skrapar Prometheus-metrik. Då används konfigurationen som beskrivs i standardkonfigurationen för Prometheus-mått i Azure Monitor. För att ändra den här konfigurationen, se Anpassa insamling av Prometheus-metrik i Azure Monitor-hanterad tjänst för Prometheus .
Se följande exempel.
### Use default Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group>
### Use existing Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <workspace-name-resource-id>
### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <azure-monitor-workspace-name-resource-id> --grafana-resource-id <grafana-workspace-name-resource-id>
### Use optional parameters
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --ksm-metric-labels-allow-list "namespaces=[k8s-label-1,k8s-label-n]" --ksm-metric-annotations-allow-list "pods=[k8s-annotation-1,k8s-annotation-n]"
Exempel
az aks create/update --enable-azure-monitor-metrics --name "my-cluster" --resource-group "my-resource-group" --azure-monitor-workspace-resource-id "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.monitor/accounts/my-workspace"
Valfria parametrar
Vart och ett av kommandona ovan tillåter följande valfria parametrar. Parameternamnet är olika för varje, men deras användning är densamma.
| Parameter | Namn och beskrivning |
|---|---|
| Anteckningsnycklar | --ksm-metric-annotations-allow-listKommaavgränsad lista över Kubernetes-annoteringar som används i resursens kube_resource_annotations mått. Till exempel är kube_pod_annotations annoteringsmetrik för poddresursen. Som standard innehåller det här måttet endast namn- och namnområdesetiketter. Om du vill inkludera fler anteckningar anger du en lista över resursnamn i pluralform och Kubernetes-anteckningsnycklar som du vill tillåta för dem. En enskild * kan tillhandahållas för varje resurs för att tillåta eventuella anteckningar, men detta har allvarliga prestandakonsekvenser. Exempel: pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],... |
| Nycklar för etiketter | --ksm-metric-labels-allow-listKommaavgränsad lista över fler Kubernetes-etikettnycklar som används i kube_resource_labels mått för resursen. Till exempel är kube_pod_labels den etikettmetrik för poddresursen. Som standard innehåller det här måttet endast namn- och namnområdesetiketter. Om du vill inkludera fler etiketter anger du en lista med resursnamn i pluralform och Kubernetes-etikettnycklar som du vill tillåta för dem En enda * kan tillhandahållas för varje resurs för att tillåta etiketter, men det här har allvarliga prestandakonsekvenser. Exempel: pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],... |
| Inspelningsregler | --enable-windows-recording-rulesGör att du kan aktivera de inspelningsregelgrupper som krävs för att Windows-instrumentpanelerna ska fungera korrekt. |
Containerloggar
Använd --addon monitoring-alternativet med az aks create för ett nytt kluster eller az aks enable-addon för att uppdatera ett befintligt kluster för att aktivera insamlingen av containerloggar. Se nedan för att ändra loggsamlingsinställningarna.
Se följande exempel.
### Use default Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name>
### Use existing Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>
### Use custom log configuration file
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --data-collection-settings dataCollectionSettings.json
### Use legacy authentication
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false
Exempel
az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"
Loggkonfigurationsfil
Om du vill anpassa loggsamlingsinställningarna för klustret kan du ange konfigurationen som en JSON-fil med följande format. Om du inte anger någon konfigurationsfil används standardinställningarna i tabellen nedan.
{
"interval": "1m",
"namespaceFilteringMode": "Include",
"namespaces": ["kube-system"],
"enableContainerLogV2": true,
"streams": ["Microsoft-Perf", "Microsoft-ContainerLogV2"]
}
Var och en av inställningarna i konfigurationen beskrivs i följande tabell.
| Namn | Beskrivning |
|---|---|
interval |
Avgör hur ofta agenten samlar in data. Giltiga värden är 1–30 m i 1m intervall Om värdet ligger utanför det tillåtna intervallet är det standardvärdet 1 m. Förvalt: 1 m. |
namespaceFilteringMode |
Inkludera: Samlar endast in data från värdena i fältet namnområden . Exkludera: Samlar in data från alla namnområden förutom värdena i fältet namnområden . Av: Ignorerar val av namnområde och samlar in data på alla namnområden. Standard: Av |
namespaces |
Matris med kommaavgränsade Kubernetes-namnområden för att samla in inventerings- och perf-data baserat på namnområdetFilteringMode. Till exempel samlar namnrymder = ["kube-system", "default"] med inställningen Inkludera endast dessa två namnområden. Med inställningen Exkludera samlar agenten in data från alla andra namnområden förutom kube-system och standard. Med en Av-inställning samlar agenten in data från alla namnområden, inklusive kube-system och standard. Ogiltiga och okända namnområden ignoreras. Ingen. |
enableContainerLogV2 |
Boolesk flagga för att aktivera ContainerLogV2-schema. Om värdet är true matas stdout-/stderr-loggarna in i tabellen ContainerLogV2 . Annars matas containerloggarna in i tabellen ContainerLog , om inget annat anges i ConfigMap. När du anger enskilda strömmar måste du inkludera motsvarande tabell för ContainerLog eller ContainerLogV2. Standard: Sant |
streams |
En matris med tabellströmmar. Se Stream-värden för en lista över giltiga strömmar och deras motsvarande tabeller. Förvald: ContainerLogV2, KubeEvents, KubePodInventory |
Strömma värden
När du anger vilka tabeller som ska samlas in med HJÄLP av CLI eller ARM anger du ett dataströmnamn som motsvarar en viss tabell på Log Analytics-arbetsytan. I följande tabell visas dataströmnamnet för varje tabell.
Anteckning
Om du är bekant med strukturen för en datainsamlingsregel anges dataströmnamnen i den här tabellen i avsnittet Dataflöden i DCR.
| Strömning | Tabell för containerinsikter |
|---|---|
| Microsoft-ContainerInventory | Behållarinventarie |
| Microsoft-ContainerLog | ContainerLog |
| Microsoft-ContainerLogV2 | ContainerLogV2 |
| Microsoft -ContainerLogV2-HighScale | ContainerLogV2 (högskalat läge)1 |
| Microsoft-ContainerNodeInventory | Inventeringslista för Containernoder |
| Microsoft-InsightsMetrics | InsightsMetrics |
| Microsoft-KubeEvents | KubeEvents |
| Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
| Microsoft-KubeNodeInventory | KubeNodeInventory |
| Microsoft-KubePodInventory | KubePodInventory |
| Microsoft-KubePVInventory | KubePVInventory |
| Microsoft-KubeServices | KubeServices |
| Microsoft-Perf | Perf |
1 Använd inte både Microsoft-ContainerLogV2 och MicrosoftContainerLogV2-HighScale tillsammans. Detta resulterar i dubbletter av data.
Tillämpliga tabeller och mått
Inställningarna för insamlingsfrekvens och namnområdesfiltrering gäller inte för alla loggdata. I följande tabeller visas tabellerna i Log Analytics-arbetsytan tillsammans med de inställningar som gäller för var och en.
| Tabellnamn | Intervall? | Namnområden? | Anmärkningar |
|---|---|---|---|
| Behållarinventarie | Yes | Yes | |
| Inventeringslista för Containernoder | Yes | Nej | Datainsamlingsinställningen för namnområden är inte tillämplig eftersom Kubernetes Node inte är en resurs med namnområdesomfång |
| KubeNodeInventory | Yes | Nej | Datainsamlingsinställningen för namnområden är inte tillämplig Kubernetes Node är inte en resurs med namnområdesomfång |
| KubePodInventory | Yes | Yes | |
| KubePVInventory | Yes | Yes | |
| KubeServices | Yes | Yes | |
| KubeEvents | Nej | Yes | Datainsamlingsinställning för intervall gäller inte för Kubernetes-händelser |
| Perf | Yes | Yes | Datainsamlingsinställningen för namnområden gäller inte för Kubernetes Node-relaterade mått eftersom Kubernetes-noden inte är ett namnområdesomfångsobjekt. |
| InsightsMetrics | Yes | Yes | Datainsamlingsinställningar gäller endast för mått som samlar in följande namnområden: container.azm.ms/kubestate, container.azm.ms/pv och container.azm.ms/gpu |
Anteckning
Namnområdesfiltrering gäller inte för ama-logs-agentposter. Även om kube-system-namnområdet visas bland undantagna namnområden kommer poster som är associerade med ama-logs-agentcontainern fortfarande att matas in.
| Metrisk namnrymd | Intervall? | Namnområden? | Anmärkningar |
|---|---|---|---|
| Insikter.container/noder | Yes | Nej | Noden är inte en resurs med namnområdesomfång |
| Insights.container/poddar | Yes | Yes | |
| Insights.behållare/behållare | Yes | Yes | |
| Insights.container/persistentvolumes | Yes | Yes |
Särskilda scenarier
Kontrollera referenserna nedan för konfigurationskrav för specifika scenarier.
- Om du använder en privat länk kan du läsa Aktivera privat länk för Kubernetes-övervakning i Azure Monitor.
- Information om hur du aktiverar containerloggning med nätverkssäkerhetsperimeter finns i Konfigurera Azure Monitor med nätverkssäkerhetsperimeter för att konfigurera Log Analytics-arbetsytan.
- Om du vill aktivera högpresterande läge följer du onboarding-processen i Aktivera högpresterande läge för övervakningstillägg. Du måste också konfigurera ConfigMap enligt beskrivningen i Uppdatera ConfigMap, och DCR-flödet måste ändras från
Microsoft-ContainerLogV2tillMicrosoft-ContainerLogV2-HighScale.
Aktivera kontrollplansloggar
Kontrollplansloggar implementeras som resursloggar i Azure Monitor. Om du vill samla in loggarna skapar du en diagnostikinställning för klustret. Skicka dem till samma Log Analytics-arbetsyta som dina containerloggar.
Använd kommandot az monitor diagnostic-settings create för att skapa en diagnostikinställning med Azure CLI. I dokumentationen för det här kommandot finns beskrivningar av dess parametrar.
I följande exempel skapas en diagnostikinställning som skickar alla Kubernetes-kategorier till en Log Analytics-arbetsyta. Detta inkluderar resursspecifikt läge för att skicka loggarna till specifika tabeller som anges i Resursloggar som stöds för Microsoft.ContainerService/fleets.
az monitor diagnostic-settings create \
--name 'Collect control plane logs' \
--resource /subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ContainerService/managedClusters/<cluster-name> \
--workspace /subscriptions/<subscription ID>/resourcegroups/<resource group name>/providers/microsoft.operationalinsights/workspaces/<log analytics workspace name> \
--logs '[{"category": "karpenter-events","enabled": true},{"category": "kube-audit","enabled": true},
{"category": "kube-apiserver","enabled": true},{"category": "kube-audit-admin","enabled": true},{"category": "kube-controller-manager","enabled": true},{"category": "kube-scheduler","enabled": true},{"category": "cluster-autoscaler","enabled": true},{"category": "cloud-controller-manager","enabled": true},{"category": "guard","enabled": true},{"category": "csi-azuredisk-controller","enabled": true},{"category": "csi-azurefile-controller","enabled": true},{"category": "csi-snapshot-controller","enabled": true},{"category": "fleet-member-agent","enabled": true},{"category": "fleet-member-net-controller-manager","enabled": true},{"category": "fleet-mcs-controller-manager","enabled": true}]'
--metrics '[{"category": "AllMetrics","enabled": true}]' \
--export-to-resource-specific true
Verifiera driftsättningen
Använd kommandoradsverktyget kubectl för att kontrollera att agenten har distribuerats korrekt.
Hanterad Prometheus
Kontrollera att DaemonSet har distribuerats korrekt i Linux-nodpoolerna
kubectl get ds ama-metrics-node --namespace=kube-system
Antalet poddar ska vara lika med antalet Linux-noder i klustret. Utdata bör likna följande exempel:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-node 1 1 1 1 1 <none> 10h
Kontrollera att Windows-noder har distribuerats korrekt
kubectl get ds ama-metrics-win-node --namespace=kube-system
Antalet poddar ska vara lika med antalet Windows-noder i klustret. Utdata bör likna följande exempel:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-win-node 3 3 3 3 3 <none> 10h
Kontrollera att de två Replica Sets har blivit implementerade för Prometheus
kubectl get rs --namespace=kube-system
Utdata bör likna följande exempel:
User@aksuser:~$kubectl get rs --namespace=kube-system
NAME DESIRED CURRENT READY AGE
ama-metrics-5c974985b8 1 1 1 11h
ama-metrics-ksm-5fcf8dffcd 1 1 1 11h
Containerloggning
Kontrollera att DaemonSets har distribuerats korrekt i Linux-nodpoolerna
kubectl get ds ama-logs --namespace=kube-system
Antalet poddar ska vara lika med antalet Linux-noder i klustret. Utdata bör likna följande exempel:
User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs 2 2 2 2 2 <none> 1d
Kontrollera att Windows-noder har distribuerats korrekt
kubectl get ds ama-logs-windows --namespace=kube-system
Antalet poddar ska vara lika med antalet Windows-noder i klustret. Utdata bör likna följande exempel:
User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs-windows 2 2 2 2 2 <none> 1d
Verifiera distributionen av containerloggningslösningen
kubectl get deployment ama-logs-rs --namespace=kube-system
Utdata bör likna följande exempel:
User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME READY UP-TO-DATE AVAILABLE AGE
ama-logs-rs 1/1 1 1 24d
Visa konfiguration med CLI
aks show Använd kommandot för att ta reda på om lösningen är aktiverad, resurs-ID för Log Analytics-arbetsytan och sammanfattningsinformation om klustret.
az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>
Kommandot returnerar JSON-formaterad information om lösningen. Avsnittet addonProfiles bör innehålla information om omsagent som i följande exempel:
"addonProfiles": {
"omsagent": {
"config": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"useAADAuth": "true"
},
"enabled": true,
"identity": null
},
}
Nästa steg
- Om du har problem med att försöka registrera dig kan du läsa felsökningsguiden.
- Lär dig hur du analyserar Kubernetes-övervakningsdata i Azure Portal Container Insights.