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:

  1. 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.

  2. Bewerk het YAML-bestand ConfigMap met uw aanpassingen met behulp van de instellingen die worden beschreven in instellingen voor gegevensverzameling

  3. 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 truede 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 truede 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 truede 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 ContainerLogV2 - of ContainerLog-tabel is geschreven voor alle containerlogboeken in het cluster. Als deze niet is opgegeven in de ConfigMap, is falsede 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 trueingesteld, worden de normale gebeurtenissen niet meer gefilterd en worden alle gebeurtenissen verzameld. Als deze niet is opgegeven in de ConfigMap, is falsede 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 v1de ContainerLog-tabel wordt gebruikt (deze tabel is afgeschaft). Voor clusters die containerinzichten inschakelen met azure CLI versie 2.54.0 of hoger, is v2de 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 falsede 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 falsede standaardwaarde .
[agent_settings]
[proxy_config] ignore_proxy_settings Booleaanse waarde true
false
Wanneer trueworden 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 falsede 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