Gegevensverzameling configureren in Container Insights met behulp van ConfigMap
In dit artikel wordt beschreven hoe u gegevensverzameling in Container Insights configureert met behulp van ConfigMap. Configuratie Kaarten zijn een Kubernetes-mechanisme waarmee u niet-vertrouwelijke gegevens, zoals configuratiebestand of omgevingsvariabelen, kunt opslaan.
De ConfigMap wordt voornamelijk gebruikt voor het configureren van gegevensverzameling van de containerlogboeken en omgevingsvariabelen van het cluster. U kunt de stdout- en stderr-logboeken afzonderlijk configureren en ook logboekregistratie met meerdere regels inschakelen. l Specifieke configuratie die u kunt uitvoeren met de ConfigMap omvat:
- Filteren van stdout- en stderr-logboeken in-/uitschakelen en naamruimtefilters
- Verzameling omgevingsvariabelen voor het cluster in-/uitschakelen
- Filteren op normale Kube-gebeurtenissen
- Logboekschema selecteren
- Logboekregistratie met meerdere regels in- of uitschakelen
- Proxy-instellingen negeren
Belangrijk
Voor een volledige configuratie van gegevensverzameling in Container Insights is mogelijk het bewerken van zowel de ConfigMap als de regel voor gegevensverzameling (DCR) voor het cluster vereist, omdat elke methode configuratie van een andere set instellingen toestaat.
Zie Gegevensverzameling configureren in Container Insights met behulp van een regel voor gegevensverzameling voor een lijst met instellingen en het proces voor het configureren van gegevensverzameling met behulp van dcr.
Vereisten
- ConfigMap is een algemene lijst en er kan slechts één ConfigMap worden toegepast op de agent voor Container Insights. Als u een andere ConfigMap toepast, worden de vorige instellingen voor de Configuratiemap-verzameling overschreven.
- De minimale agentversie die wordt ondersteund voor het verzamelen van stdout-, stderr- en omgevingsvariabelen van containerworkloads is ciprod06142019 of hoger. Als u de versie van de agent wilt controleren, selecteert u op het tabblad Node een knooppunt. Noteer in het deelvenster Eigenschappen de waarde van de eigenschap Agent Image Tag . Zie opmerkingen bij de release van agent voor meer informatie over de agentversies en wat er in elke release is opgenomen.
ConfigMap configureren en implementeren
Gebruik de volgende procedure om het configuratiebestand ConfigMap in uw cluster te configureren en te implementeren:
Download het YAML-bestand van de sjabloon ConfigMap en open het in een editor. Als u al een ConfigMap-bestand hebt, kunt u dat bestand gebruiken.
Bewerk het YAML-bestand ConfigMap met uw aanpassingen met behulp van de instellingen die worden beschreven in instellingen voor gegevensverzameling
Maak een ConfigMap door de volgende kubectl-opdracht uit te voeren:
kubectl apply -f <configmap_yaml_file.yaml>
Voorbeeld:
kubectl apply -f container-azm-ms-agentconfig.yaml
Het kan enkele minuten duren voordat de configuratiewijziging is voltooid. Vervolgens worden alle Azure Monitor Agent-pods in het cluster opnieuw opgestart. Het opnieuw opstarten is een doorlopende herstart voor alle Azure Monitor Agent-pods, dus niet allemaal tegelijk opnieuw opstarten. Wanneer de herstart is voltooid, ontvangt u een bericht dat vergelijkbaar is met het volgende resultaat:
configmap "container-azm-ms-agentconfig" created`.
Instellingen voor gegevensverzameling
In de volgende tabel worden de instellingen beschreven die u kunt configureren voor het beheren van gegevensverzameling.
Instelling | Gegevenstype | Weergegeven als | Beschrijving |
---|---|---|---|
schema-version |
Tekenreeks (hoofdlettergevoelig) | v1 | Wordt door de agent gebruikt bij het parseren van deze ConfigMap. De momenteel ondersteunde schemaversie is v1. Het wijzigen van deze waarde wordt niet ondersteund en wordt geweigerd wanneer de ConfigMap wordt geëvalueerd. |
config-version |
String | Hiermee kunt u de versie van dit configuratiebestand bijhouden in uw broncodebeheersysteem/opslagplaats. Maximaal toegestane tekens zijn 10 en alle andere tekens worden afgekapt. | |
[log_collection_settings] | |||
[stdout] enabled |
Booleaanse waarde | true false |
Hiermee bepaalt u of het verzamelen van stdout-containerlogboeken is ingeschakeld. Als deze is ingesteld true op en er geen naamruimten worden uitgesloten voor het verzamelen van stdout-logboeken, worden stdout-logboeken verzameld van alle containers in alle pods en knooppunten in het cluster. Als deze niet is opgegeven in de ConfigMap, is true de standaardwaarde . |
[stdout] exclude_namespaces |
String | Door komma's gescheiden matrix | Matrix van Kubernetes-naamruimten waarvoor stdout-logboeken niet worden verzameld. Deze instelling is alleen van kracht als enabled deze is ingesteld op true . Als deze niet is opgegeven in de ConfigMap, is de standaardwaarde["kube-system","gatekeeper-system"] . |
[stderr] enabled |
Booleaanse waarde | true false |
Hiermee bepaalt u of de verzameling containerlogboeken van stderr is ingeschakeld. Als deze is ingesteld true op en er geen naamruimten worden uitgesloten voor het verzamelen van stderr-logboeken, worden stderr-logboeken verzameld van alle containers in alle pods en knooppunten in het cluster. Als deze niet is opgegeven in de ConfigMap, is true de standaardwaarde . |
[stderr] exclude_namespaces |
String | Door komma's gescheiden matrix | Matrix van Kubernetes-naamruimten waarvoor stderr-logboeken niet worden verzameld. Deze instelling is alleen van kracht als enabled deze is ingesteld op true . Als deze niet is opgegeven in de ConfigMap, is de standaardwaarde["kube-system","gatekeeper-system"] . |
[env_var] enabled |
Booleaanse waarde | true false |
Met deze instelling bepaalt u de verzameling omgevingsvariabelen voor alle pods en knooppunten in het cluster. Als deze niet is opgegeven in de ConfigMap, is true de standaardwaarde . Als het verzamelen van omgevingsvariabelen globaal is ingeschakeld, kunt u deze uitschakelen voor een specifieke container door de omgevingsvariabele AZMON_COLLECT_ENV in te False stellen op een Dockerfile-instelling of in het configuratiebestand voor de pod onder de env: sectie. Als het verzamelen van omgevingsvariabelen globaal is uitgeschakeld, kunt u verzameling niet inschakelen voor een specifieke container. De enige onderdrukking die op containerniveau kan worden toegepast, is het uitschakelen van verzameling wanneer deze al wereldwijd is ingeschakeld. |
[enrich_container_logs] enabled |
Booleaanse waarde | true false |
Hiermee bepaalt u de verrijking van containerlogboeken om de Name en Image eigenschapswaarden te vullen voor elke logboekrecord die naar de ContainerLog-tabel is geschreven voor alle containerlogboeken in het cluster. Als deze niet is opgegeven in de ConfigMap, is false de standaardwaarde . |
[collect_all_kube_events] enabled |
Booleaanse waarde | true false |
Hiermee bepaalt u of Kube-gebeurtenissen van alle typen worden verzameld. Standaard worden de Kube-gebeurtenissen met het type Normaal niet verzameld. Als deze instelling is true ingesteld, worden de normale gebeurtenissen niet meer gefilterd en worden alle gebeurtenissen verzameld. Als deze niet is opgegeven in de ConfigMap, is false de standaardwaarde . |
[schema] containerlog_schema_version |
Tekenreeks (hoofdlettergevoelig) | v2 v1 |
Hiermee stelt u de indeling voor logboekopname in. Als v2 , wordt de ContainerLogV2-tabel gebruikt. Als v1 de ContainerLog-tabel wordt gebruikt (deze tabel is afgeschaft). Voor clusters die containerinzichten inschakelen met azure CLI versie 2.54.0 of hoger, is v2 de standaardinstelling. Zie het Container Insights-logboekschema voor meer informatie. |
[enable_multiline_logs] enabled |
Booleaanse waarde | true false |
Hiermee bepaalt u of containerlogboeken met meerdere regels zijn ingeschakeld. Zie Logboekregistratie met meerdere regels in Container Insights voor meer informatie. Als deze niet is opgegeven in de ConfigMap, is false de standaardwaarde . Hiervoor moet de schema instelling zijn v2 . |
[metric_collection_settings] | |||
[collect_kube_system_pv_metrics] enabled |
Booleaanse waarde | true false |
Hiermee kunnen metrische gegevens over persistent volumegebruik (PV) worden verzameld in de kube-system-naamruimte. Standaard worden metrische gegevens over gebruik voor permanente volumes met permanente volumeclaims in de kube-system-naamruimte niet verzameld. Wanneer deze instelling is ingesteld op true , worden metrische gegevens over HW-gebruik voor alle naamruimten verzameld. Als deze niet is opgegeven in de ConfigMap, is false de standaardwaarde . |
[agent_settings] | |||
[proxy_config] ignore_proxy_settings |
Booleaanse waarde | true false |
Wanneer true worden proxy-instellingen genegeerd. Voor kubernetes-omgevingen met AKS en Arc worden proxy-instellingen automatisch toegepast en gebruikt voor de agent als uw cluster is geconfigureerd met een doorstuurproxy. Voor bepaalde configuraties, zoals met AMPLS + Proxy, wilt u mogelijk dat de proxyconfiguratie wordt genegeerd. Als deze niet is opgegeven in de ConfigMap, is false de standaardwaarde . |
Configuratie controleren
Als u wilt controleren of de configuratie is toegepast op een cluster, gebruikt u de volgende opdracht om de logboeken van een agentpod te controleren.
kubectl logs ama-logs-fdf58 -n kube-system
Als er configuratiefouten zijn van de Azure Monitor Agent-pods, worden in de uitvoer fouten weergegeven die vergelijkbaar zijn met het volgende voorbeeld:
***************Start Config Processing********************
config::unsupported/missing config schema version - 'v21' , using defaults
Fouten met betrekking tot het toepassen van configuratiewijzigingen zijn ook beschikbaar voor revisie. De volgende opties zijn beschikbaar om meer problemen met configuratiewijzigingen uit te voeren:
Vanuit een agentpodlogboek met dezelfde
kubectl logs
opdracht.Vanuit livelogboeken. Livelogboeken tonen fouten die vergelijkbaar zijn met het volgende voorbeeld:
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
Vanuit de kubeMonAgentEvents-tabel in uw Log Analytics-werkruimte. Gegevens worden elk uur verzonden met de ernst van de fout voor configuratiefouten. Als er geen fouten zijn, bevat de vermelding in de tabel gegevens met ernstgegevens, die geen fouten melden. De eigenschap Tags bevat meer informatie over de pod en container-id waarop de fout is opgetreden, evenals het eerste exemplaar, het laatste exemplaar en het aantal in het afgelopen uur.
Schemaversie controleren
Ondersteunde configuratieschemaversies zijn beschikbaar als podaantekening (schemaversies) op de Azure Monitor Agent-pod. U kunt deze zien met de volgende kubectl-opdracht.
kubectl describe pod ama-logs-fdf58 -n=kube-system.
Uitvoer die vergelijkbaar is met het volgende voorbeeld wordt weergegeven met de annotatieschemaversies:
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
Veelgestelde vragen
Hoe kan ik logboekverzameling inschakelen voor containers in de kube-system-naamruimte via Helm?
De logboekverzameling van containers in de kube-system-naamruimte is standaard uitgeschakeld. U kunt logboekverzameling inschakelen door een omgevingsvariabele in te stellen op Azure Monitor Agent. Zie de GitHub-pagina containerinzichten.
Volgende stappen
- Zie Gegevensverzameling configureren in Container Insights met behulp van een regel voor gegevensverzameling om gegevensverzameling te configureren met DCR in plaats van ConfigMap.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor