Dela via


Loggsamling i hög skala i Container Insights

Högskalat läge är en funktion i Container Insights som gör att du kan samla in containerkonsolloggar (stdout & stderr) med högt dataflöde från dina AKS-klusternoder (Azure Kubernetes Service). Med den här funktionen kan du samla in upp till 50 000 loggar per nod.

Overview

När läget för hög skalning är aktiverat utför Container Insights flera konfigurationsändringar som resulterar i ett högre övergripande dataflöde. Detta omfattar användning av en uppgraderad agent och Azure Monitor-datapipeline med skalningsförbättringar. Alla dessa ändringar görs i bakgrunden av Azure Monitor och kräver inte indata eller konfiguration när funktionen har aktiverats.

Högskalningsläget påverkar endast datainsamlingslagret. Resten av Container Insights-upplevelsen förblir densamma, med loggar som matas in i samma ContainerLogV2 tabell. Befintliga frågor och aviseringar fortsätter att fungera eftersom samma data samlas in.

För att uppnå maximalt loggdataflöde som stöds bör du använda avancerade VM-SKU:er med 16 CPU-kärnor eller mer för dina AKS-klusternoder. Användning av lågpresterande SKU:er för virtuella datorer påverkar loggarnas dataflöde.

Kvalificerar mitt kluster?

Loggsamling i hög skala passar för miljöer som skickar mer än 2 000 loggar per sekund (eller 2 MB/s) per nod i sina Kubernetes-kluster och har utformats och testats för att skicka upp till 50 000 loggar per nod. Använd följande loggfrågor för att avgöra om klustret är lämpligt för insamling av loggar i hög skala.

Loggar per sekund och per nod

ContainerLogV2 
| where _ResourceId =~ "<cluster-resource-id>" 
| summarize count() by bin(TimeGenerated, 1s), Computer 
| render timechart 

Loggstorlek (i MB) per sekund per nod

 ContainerLogV2 
| where _ResourceId =~ "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer 
| render timechart 

Prerequisites

  • Azure CLI version 2.74.0 eller senare.
  • Azure CLI k8s-extension version 1.6.7 eller senare för om du hanterar Azure Arc-aktiverade Kubernetes.
  • Klusterschemat måste konfigureras för ContainerLogV2.
  • Om standardresursgränserna (CPU och minne) på daemonuppsättningscontainern ama-logs inte uppfyller dina krav på loggskalning kontaktar du Microsofts supportkanal för att öka resursgränserna för din ama-logs-container.

Krav för nätverksbrandvägg

Utöver kraven för nätverksbrandväggen för övervakning av ett Kubernetes-kluster krävs ytterligare konfigurationer i följande tabell för att aktivera högskalningsläge beroende på ditt moln.

Cloud Endpoint Port
Offentligt Azure-moln <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.com 443
Microsoft Azure drivs av 21Vianet-molnet <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn 443
Azure för myndighetsmoln <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us 443

Slutpunkten är slutpunkten för logginmatning från datainsamlingsslutpunkten (DCE) för den datainsamlingsregel (DCR) som används av klustret. Denna DCE skapas när du aktiverar högskalningsläge för klustret och börjar med prefixet MSCI-ingest.

Skärmbild av slutpunkten för logginmatning för DCE.

Limitations

Följande scenarier stöds inte:

  • HTTP-proxy med betrott certifikat
  • Registrering via Azure-portalen
  • Konfigurera via Övervakningsinställningar i AKS Insights-portalen
  • Automatisk migrering från befintliga Container Insights
  • Registrering via Bicep, Terraform, Azure Policy för Azure Arc-aktiverade Kubernetes

Aktivera loggsamling i hög skala

Följ de två stegen i följande avsnitt för att aktivera högskalningsläge för klustret.

Note

Läget för hög loggskalning kräver en datainsamlingsslutpunkt (DCE) för insamling. En DCE för införsel skapas med prefixet MSCI-ingest för varje kluster när du lägger till dem. Om Azure Monitor private link-omfånget har konfigurerats skapas även konfigurations-DCE med prefixet MSCI-config.

Uppdatera konfigurationskarta

Det första steget är att uppdatera configmap för klustret för att instruera Container Insights ama-logs daemonset-poddar att köras i läge för hög skalning.

  1. Följ riktlinjerna i Konfigurera och distribuera ConfigMap för att ladda ned och uppdatera ConfigMap för klustret.

  2. Aktivera högskalningsläge med följande inställning under agent-settings.

    [agent_settings.high_log_scale] 
      enabled = true 
    
  3. Aktivera insamling av interna mått för att fylla I QoS Grafana-instrumentpanelen som beskrivs nedan med följande inställning under agent-settings.

    [agent_settings.fbit_config]
      enable_internal_metrics = "true"
    
  4. Använd ConfigMap på klustret med följande kommandon.

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    

När du har tillämpat den här konfigurationskartan ama-logs-* startas poddar om automatiskt och konfigurerar daemonset-poddarna för ama-loggar så att de körs i högskalat läge.

Aktivera högskalemodus för övervakning av tillägg

Aktivera övervakningstillägget med hög skalningsläge med hjälp av följande Azure CLI-kommandon för att aktivera loggläge i hög skala för tillägget Övervakning beroende på din AKS-konfiguration.

Note

Se Aktivera Container Insights för vägledning om hur du aktiverar Container Insights andra metoder som ARM, Bicep och Terraform. Om du vill aktivera högskalningsläge använder du Microsoft-ContainerLogV2-HighScale i stället för Microsoft-ContainerLogV2 i parametern enligt beskrivningen streams i Containerloggar.

Befintligt AKS-kluster

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-log-scale-mode

Befintligt privat AKS-kluster

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-scale-mode --ampls-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/privatelinkscopes/<resourceName> 

Nytt AKS-kluster

az aks create -g <resource-group-name> -n <cluster-name> enable-addons -a monitoring --enable-high-log-scale-mode

Nytt privat AKS-kluster

Mer information om hur du skapar ett privat AKS-kluster (AKS) finns i Skapa ett privat Azure Kubernetes Service-kluster (AKS). Använd de ytterligare parametrarna --enable-high-scale-mode och --ampls-resource-id för att konfigurera läget för hög loggskalning med Resurs-ID för Azure Monitor Private Link-omfång.

ARC-aktiverat kluster

az k8s-extension create --name azuremonitor-containers --resource-group <resource-group-name>  --cluster-name <cluster-name>  --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.enableHighLogScaleMode=true logAnalyticsWorkspaceResourceID=<workspace-resource-id> 

Migration

Om Container Insights redan är aktiverat för klustret måste du inaktivera det och sedan återaktivera det med högskalningsläge.

  • Eftersom högskalat läge använder en annan datapipeline måste du se till att pipelineslutpunkter inte blockeras av en brandvägg eller andra nätverksanslutningar.
  • Högskalningsläge kräver en datainsamlingsslutpunkt (DCE) för inmatning utöver standard-DCR för datainsamling. Om du har skapat några DCR som använder Microsoft-ContainerLogV2, måste du ersätta detta med Microsoft-ContainerLogV2-HighScale eller så kommer data att dupliceras. Du bör också skapa en DCE för inmatning och länka den till DCR om DCR inte redan använder en. För en referens om beroenden, hänvisa till Container Insights onboarding genom Azure Resource Manager.

Övervaka QoS-mått med Prometheus och Grafana

När mängden loggar som genereras är betydande kan det leda till hastighetsbegränsning och loggförlust. Mer information om hur du konfigurerar begränsningsparametrar och övervakning för loggförlust finns i artikeln Konfigurera begränsning för Container Insights .

Nästa steg