Konfigurera datainsamling och kostnadsoptimering i Container Insights med hjälp av datainsamlingsregeln

Den här artikeln beskriver hur du konfigurerar datainsamling i Container Insights med hjälp av datainsamlingsregeln (DCR) för ditt Kubernetes-kluster. Detta inkluderar förinställda konfigurationer för att optimera dina kostnader. En DCR skapas när du registrerar ett kluster till Container Insights. Denna DCR används av den containerbaserade agenten för att definiera datainsamling för klustret.

DCR används främst för att konfigurera datainsamling av prestanda- och inventeringsdata och för att konfigurera kostnadsoptimering.

Specifik konfiguration som du kan utföra med DCR omfattar:

  • Aktivera/inaktivera insamlings- och namnområdesfiltrering för prestanda- och inventeringsdata.
  • Definiera insamlingsintervall för prestanda- och inventeringsdata
  • Aktivera/inaktivera Syslog-samling
  • Välj loggschema

Viktigt!

Fullständig konfiguration av datainsamling i Container Insights kan kräva redigering av både DCR och ConfigMap för klustret eftersom varje metod tillåter konfiguration av en annan uppsättning inställningar.

Se Konfigurera datainsamling i Container Insights med ConfigMap för en lista över inställningar och processen för att konfigurera datainsamling med hjälp av ConfigMap.

Förutsättningar

  • AKS-kluster måste använda antingen system- eller användartilldelad hanterad identitet. Om klustret använder ett huvudnamn för tjänsten måste du uppgradera till Hanterad identitet.

Konfigurera datainsamling

DCR som skapas när du aktiverar Container insights heter MSCI-cluster-region-cluster-name<<>>. Du kan visa den i Azure-portalen genom att välja alternativet Datainsamlingsreglermenyn Övervaka i Azure-portalen. I stället för att ändra domänkontrollanten direkt bör du använda någon av metoderna som beskrivs nedan för att konfigurera datainsamling. Mer information om de olika tillgängliga inställningar som används av varje metod finns i Datainsamlingsparametrar .

Varning

Standardupplevelsen för Container Insights beror på alla befintliga dataströmmar. Om du tar bort en eller flera av standardströmmarna blir containerinsikterna otillgängliga och du måste använda andra verktyg som Grafana-instrumentpaneler och loggfrågor för att analysera insamlade data.

Du kan använda Azure-portalen för att aktivera kostnadsoptimering i ditt befintliga kluster när containerinsikter har aktiverats, eller så kan du aktivera containerinsikter i klustret tillsammans med kostnadsoptimering.

  1. Välj klustret i Azure-portalen.

  2. Välj alternativet Insikter i avsnittet Övervakning på menyn.

  3. Om Container Insights redan har aktiverats i klustret väljer du knappen Övervakning Inställningar. Om inte väljer du Konfigurera Azure Monitor och läser Aktivera övervakning på ditt Kubernetes-kluster med Azure Monitor för mer information om hur du aktiverar övervakning.

    Skärmbild av AKS-kluster med knappen Övervaka inställningar.

  4. För AKS och Arc-aktiverade Kubernetes väljer du Använd hanterad identitet om du ännu inte har migrerat klustret till hanterad identitetsautentisering.

  5. Välj en av de kostnadsförinställningar som beskrivs i Kostnadsförinställningar.

    Skärmbild som visar registreringsalternativen.

  6. Om du vill anpassa inställningarna klickar du på Redigera samlingsinställningar. Mer information om varje inställning finns i Datainsamlingsparametrar . Information om insamlade data finns i Insamlade data nedan.

    Skärmbild som visar alternativen för samlingsinställningar.

  7. Spara inställningarna genom att klicka på Konfigurera .

Kostnadsförinställningar

När du använder Azure-portalen för att konfigurera kostnadsoptimering kan du välja från följande förinställda konfigurationer. Du kan välja någon av dessa eller ange egna anpassade inställningar. Som standard använder Container Insights standardförinställningen.

Förinställd kostnad Insamlingsfrekvens Namnområdesfilter Syslog-samling Insamlade data
Standard 1 m Ingen Inte aktiverad Alla standardtabeller för containerinsikter
Kostnadsoptimerad 5 m Exkluderar kube-system, gatekeeper-system, azure-arc Inte aktiverad Alla standardtabeller för containerinsikter
Syslog 1 m Ingen Aktiverad som standard Alla standardtabeller för containerinsikter
Loggar och händelser 1 m Ingen Inte aktiverad ContainerLog/ContainerLogV2
KubeEvents
KubePodInventory

Insamlade data

Med alternativet Insamlade data kan du välja de tabeller som är ifyllda för klustret. Detta motsvarar parametern streams när du utför konfigurationen med CLI eller ARM. Om du väljer något annat alternativ än Alla (standard) blir Container insights-upplevelsen otillgänglig och du måste använda Grafana eller andra metoder för att analysera insamlade data.

Skärmbild som visar de insamlade dataalternativen.

Gruppering Tabeller Kommentar
Alla (standard) Alla standardtabeller för containerinsikter Krävs för att aktivera standardvisualiseringar för Container Insights
Prestanda Perf, InsightsMetrics
Loggar och händelser ContainerLog eller ContainerLogV2, KubeEvents, KubePodInventory Rekommenderas om du har aktiverat hanterade Prometheus-mått
Arbetsbelastningar, distributioner och HPA:er InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
Beständiga volymer InsightsMetrics, KubePVInventory

Parametrar för datainsamling

I följande tabell beskrivs de inställningar för datainsamling som stöds och namnet som används för var och en för olika registreringsalternativ.

Name beskrivning
Insamlingsfrekvens
CLI: interval
ARM: dataCollectionInterval
Avgör hur ofta agenten samlar in data. Giltiga värden är 1–30 m i 1m intervall Standardvärdet är 1 m. Om värdet ligger utanför det tillåtna intervallet är det som standard 1 m.
Namnområdesfiltrering
CLI: namespaceFilteringMode
ARM: namespaceFilteringModeForDataCollection
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.
Namnområdesfiltrering
CLI: namespaces
ARM: namespacesForDataCollection
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.
Aktivera ContainerLogV2
CLI: enableContainerLogV2
ARM: 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.
Insamlade data
CLI: streams
ARM: streams
En matris med container insights-tabellströmmar. Se de strömmar som stöds ovan till tabellmappning.

Tillämpliga tabeller och mått

Inställningarna för insamlingsfrekvens och namnområdesfiltrering gäller inte för alla Container Insights-data. Följande tabeller visar tabellerna i Log Analytics-arbetsytan som används av Container Insights och de mått som samlas in tillsammans med de inställningar som gäller för var och en.

Kommentar

Den här funktionen konfigurerar inställningar för alla container insights-tabeller förutom ContainerLog och ContainerLogV2. Om du vill konfigurera inställningar för dessa tabeller uppdaterar du ConfigMap som beskrivs i inställningarna för agentdatainsamling.

Tabellnamn Intervall? Namnområden? Kommentarer
ContainerInventory Ja Ja
ContainerNodeInventory Ja Nej Datainsamlingsinställningen för namnområden är inte tillämplig eftersom Kubernetes Node inte är en resurs med namnområdesomfång
KubeNodeInventory Ja Nej Datainsamlingsinställningen för namnområden är inte tillämplig Kubernetes Node är inte en resurs med namnområdesomfång
KubePodInventory Ja Ja
KubePVInventory Ja Ja
KubeServices Ja Ja
KubeEvents Nej Ja Datainsamlingsinställning för intervall gäller inte för Kubernetes-händelser
Perf Ja Ja 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 Ja Ja 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
Namnområde för mått Intervall? Namnområden? Kommentarer
Insights.container/nodes Ja Nej Noden är inte en resurs med namnområdesomfång
Insights.container/poddar Ja Ja
Insights.container/containers Ja Ja
Insights.container/persistentvolumes Ja Ja

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.

Kommentar

Om du är bekant med strukturen för en datainsamlingsregel anges dataströmnamnen i den här tabellen i avsnittet dataflöden i DCR.

Stream Container insights-tabell
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf

Påverkan på visualiseringar och aviseringar

Om du för närvarande använder tabellerna ovan för andra anpassade aviseringar eller diagram kan det försämra dessa funktioner genom att ändra inställningarna för datainsamlingen. Om du utesluter namnområden eller minskar datainsamlingsfrekvensen granskar du dina befintliga aviseringar, instrumentpaneler och arbetsböcker med hjälp av dessa data.

Om du vill söka efter aviseringar som refererar till dessa tabeller kör du följande Azure Resource Graph-fråga:

resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "Perf" or properties  contains "InsightsMetrics" or properties  contains "ContainerInventory" or properties  contains "ContainerNodeInventory" or properties  contains "KubeNodeInventory" or properties  contains"KubePodInventory" or properties  contains "KubePVInventory" or properties  contains "KubeServices" or properties  contains "KubeEvents" 
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Nästa steg