Konfigurera datainsamling i Container Insights med hjälp av ConfigMap
Den här artikeln beskriver hur du konfigurerar datainsamling i Container Insights med hjälp av ConfigMap. Config Kartor är en Kubernetes-mekanism som gör att du kan lagra icke-konfidentiella data, till exempel konfigurationsfiler eller miljövariabler.
ConfigMap används främst för att konfigurera datainsamling av containerloggar och miljövariabler i klustret. Du kan konfigurera stdout- och stderr-loggarna individuellt och även aktivera flerradsloggning. l Specifik konfiguration som du kan utföra med ConfigMap innehåller:
- Aktivera/inaktivera och namnområdesfiltrering för stdout- och stderr-loggar
- Aktivera/inaktivera samling miljövariabler för klustret
- Filtrera efter normala Kube-händelser
- Välj loggschema
- Aktivera/inaktivera flerradsloggning
- Ignorera proxyinställningar
Viktigt!
Fullständig konfiguration av datainsamling i Container Insights kan kräva redigering av både ConfigMap och datainsamlingsregeln (DCR) för klustret eftersom varje metod tillåter konfiguration av en annan uppsättning inställningar.
Se Konfigurera datainsamling i Container Insights med hjälp av datainsamlingsregeln för en lista över inställningar och processen för att konfigurera datainsamling med hjälp av DCR.
Förutsättningar
- ConfigMap är en global lista och det kan bara finnas en ConfigMap som tillämpas på agenten för Container Insights. Om du tillämpar en annan ConfigMap överskrids de tidigare inställningarna för ConfigMap-samlingen.
- Den lägsta agentversion som stöds för att samla in stdout-, stderr- och miljövariabler från containerarbetsbelastningar är ciprod06142019 eller senare. Om du vill verifiera agentversionen väljer du en nod på fliken Nod . I fönstret Egenskaper noterar du värdet för egenskapen Agentavbildningstagg . Mer information om agentversionerna och vad som ingår i varje version finns i Viktig information om agenten.
Konfigurera och distribuera ConfigMap
Använd följande procedur för att konfigurera och distribuera konfigurationsfilen ConfigMap till klustret:
Ladda ned YAML-filen för mallen ConfigMap och öppna den i ett redigeringsprogram. Om du redan har en ConfigMap-fil kan du använda den.
Redigera YAML-filen ConfigMap med dina anpassningar med hjälp av inställningarna som beskrivs i inställningarna för datainsamling
Skapa en ConfigMap genom att köra följande kubectl-kommando:
kubectl apply -f <configmap_yaml_file.yaml>
Exempel:
kubectl apply -f container-azm-ms-agentconfig.yaml
Konfigurationsändringen kan ta några minuter innan den börjar gälla. Sedan startas alla Azure Monitor Agent-poddar i klustret om. Omstarten är en löpande omstart för alla Azure Monitor Agent-poddar, så alla startas inte om samtidigt. När omstarterna är klara får du ett meddelande som liknar följande resultat:
configmap "container-azm-ms-agentconfig" created`.
Inställningar för datainsamling
I följande tabell beskrivs de inställningar som du kan konfigurera för att styra datainsamling.
Inställning | Datatyp | Värde | beskrivning |
---|---|---|---|
schema-version |
Sträng (skiftlägeskänslig) | v1 | Används av agenten när du parsar den här ConfigMap. Schemaversionen som stöds för närvarande är v1. Det går inte att ändra det här värdet och avvisas när ConfigMap utvärderas. |
config-version |
String | Gör att du kan hålla reda på den här konfigurationsfilens version i källkontrollsystemet/lagringsplatsen. Maximalt antal tillåtna tecken är 10 och alla andra tecken trunkeras. | |
[log_collection_settings] | |||
[stdout] enabled |
Booleskt | true falskt |
Styr om stdout-containerloggsamling är aktiverad. När det är inställt på true och inga namnrymder undantas för stdout-loggsamling samlas stdout-loggar in från alla containrar över alla poddar och noder i klustret. Om det inte anges i ConfigMap är true standardvärdet . |
[stdout] exclude_namespaces |
String | Kommaavgränsad matris | Matris med Kubernetes-namnområden för vilka stdout-loggar inte samlas in. Den här inställningen gäller endast om enabled är inställd på true . Om det inte anges i ConfigMap är standardvärdet["kube-system","gatekeeper-system"] . |
[stderr] enabled |
Booleskt | true falskt |
Styr om stderr-containerloggsamlingen är aktiverad. När det är inställt på true och inga namnområden undantas för stderr-loggsamlingen samlas stderr-loggar in från alla containrar över alla poddar och noder i klustret. Om det inte anges i ConfigMap är true standardvärdet . |
[stderr] exclude_namespaces |
String | Kommaavgränsad matris | Matris med Kubernetes-namnområden för vilka stderr-loggar inte samlas in. Den här inställningen gäller endast om enabled är inställd på true . Om det inte anges i ConfigMap är standardvärdet["kube-system","gatekeeper-system"] . |
[env_var] enabled |
Booleskt | true falskt |
Den här inställningen styr miljövariabelsamlingen för alla poddar och noder i klustret. Om det inte anges i ConfigMap är true standardvärdet . Om en samling miljövariabler är globalt aktiverad kan du inaktivera den för en specifik container genom att ange miljövariabeln AZMON_COLLECT_ENV till False antingen med en Dockerfile-inställning eller i konfigurationsfilen för podden under env: avsnittet . Om en samling miljövariabler är globalt inaktiverad kan du inte aktivera insamling för en specifik container. Den enda åsidosättning som kan tillämpas på containernivå är att inaktivera samlingen när den redan är aktiverad globalt. |
[enrich_container_logs] enabled |
Booleskt | true falskt |
Styr berikning av containerloggar för att fylla i Name egenskapsvärdena och Image för varje loggpost som skrivs till tabellen ContainerLog för alla containerloggar i klustret. Om det inte anges i ConfigMap är false standardvärdet . |
[collect_all_kube_events] enabled |
Booleskt | true falskt |
Styr om Kube-händelser av alla typer samlas in. Som standard samlas inte Kube-händelser med typen Normal in. När den här inställningen är true filtreras inte längre normalhändelserna och alla händelser samlas in. Om det inte anges i ConfigMap är false standardvärdet . |
[schema] containerlog_schema_version |
Sträng (skiftlägeskänslig) | v2 v1 |
Anger logginmatningsformatet. Om v2 används tabellen ContainerLogV2. Om v1 används tabellen ContainerLog (den här tabellen har föråldrats). För kluster som aktiverar containerinsikter med azure CLI version 2.54.0 eller senare är v2 standardinställningen . Mer information finns i Loggschema för Container Insights. |
[enable_multiline_logs] enabled |
Booleskt | true falskt |
Styr om flerradscontainerloggar är aktiverade. Mer information finns i Flerradsloggning i Container Insights . Om det inte anges i ConfigMap är false standardvärdet . Detta kräver att inställningen schema är v2 . |
[metric_collection_settings] | |||
[collect_kube_system_pv_metrics] enabled |
Booleskt | true falskt |
Tillåter att mått för beständiga volymer (PV) samlas in i kube-system-namnområdet. Som standard samlas inte användningsstatistik för beständiga volymer med beständiga volymanspråk i kube-system-namnområdet in. När den här inställningen är inställd true på samlas PV-användningsstatistik för alla namnområden in. Om det inte anges i ConfigMap är false standardvärdet . |
[agent_settings] | |||
[proxy_config] ignore_proxy_settings |
Booleskt | true falskt |
När true ignoreras proxyinställningarna. För både AKS- och Arc-aktiverade Kubernetes-miljöer, om klustret har konfigurerats med vidarebefordrad proxy, tillämpas proxyinställningarna automatiskt och används för agenten. För vissa konfigurationer, till exempel med AMPLS + Proxy, kanske du vill att proxykonfigurationen ska ignoreras. Om det inte anges i ConfigMap är false standardvärdet . |
Verifiera konfigurationen
Om du vill kontrollera att konfigurationen har tillämpats på ett kluster använder du följande kommando för att granska loggarna från en agentpodd.
kubectl logs ama-logs-fdf58 -n kube-system
Om det finns konfigurationsfel från Azure Monitor Agent-poddarna visar utdata fel som liknar följande exempel:
***************Start Config Processing********************
config::unsupported/missing config schema version - 'v21' , using defaults
Fel som rör tillämpning av konfigurationsändringar är också tillgängliga för granskning. Följande alternativ är tillgängliga för att utföra mer felsökning av konfigurationsändringar:
Från en agentpoddlogg med samma
kubectl logs
kommando.Från liveloggar. Liveloggar visar fel som liknar följande exempel:
config::error::Exception while parsing config map for log collection/env variable settings: \nparse error on value \"$\" ($end), using defaults, please check config map for errors
Från tabellen KubeMonAgentEvents på din Log Analytics-arbetsyta. Data skickas varje timme med allvarlighetsgrad för fel vid konfigurationsfel. Om det inte finns några fel kommer posten i tabellen att ha data med allvarlighetsgradsinformation, som inte rapporterar några fel. Egenskapen Taggar innehåller mer information om podden och container-ID:t där felet inträffade och även den första förekomsten, den senaste förekomsten och antalet under den senaste timmen.
Verifiera schemaversionen
Konfigurationsschemaversioner som stöds är tillgängliga som poddanteckning (schemaversioner) i Azure Monitor Agent-podden. Du kan se dem med följande kubectl-kommando.
kubectl describe pod ama-logs-fdf58 -n=kube-system.
Utdata som liknar följande exempel visas med anteckningsschemaversionerna:
Name: ama-logs-fdf58
Namespace: kube-system
Node: aks-agentpool-95673144-0/10.240.0.4
Start Time: Mon, 10 Jun 2019 15:01:03 -0700
Labels: controller-revision-hash=589cc7785d
dsName=ama-logs-ds
pod-template-generation=1
Annotations: agentVersion=1.10.0.1
dockerProviderVersion=5.0.0-0
schema-versions=v1
Vanliga frågor och svar
Hur gör jag för att aktivera logginsamling för containrar i kube-system-namnområdet via Helm?
Loggsamlingen från containrar i kube-system-namnområdet är inaktiverad som standard. Du kan aktivera logginsamling genom att ange en miljövariabel i Azure Monitor Agent. Se GitHub-sidan containerinsikter.
Nästa steg
- Se Konfigurera datainsamling i Container Insights med hjälp av datainsamlingsregeln för att konfigurera datainsamling med DCR i stället för ConfigMap.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för