Share via


Logboekverzameling configureren in Container Insights

In dit artikel vindt u informatie over het configureren van gegevensverzameling in Container Insights voor uw Kubernetes-cluster zodra het is voorbereid. Zie Bewaking inschakelen voor Kubernetes-clusters voor hulp bij het inschakelen van Container Insights in uw cluster.

Configuratiemethoden

Er zijn twee methoden voor het configureren en filteren van gegevens die worden verzameld in Container Insights. Afhankelijk van de instelling kunt u mogelijk kiezen tussen de twee methoden of moet u mogelijk een of meer methoden gebruiken. De twee methoden worden beschreven in de onderstaande tabel met gedetailleerde informatie in de volgende secties.

Wijze Description
Regel voor gegevensverzameling (DCR) Regels voor gegevensverzameling zijn sets met instructies voor het verzamelen van gegevens met behulp van de Azure Monitor-pijplijn. Er wordt een DCR gemaakt wanneer u Container Insights inschakelt en u kunt de instellingen in deze DCR wijzigen met behulp van Azure Portal of andere methoden.
ConfigMap ConfigMaps zijn een Kubernetes-mechanisme waarmee u niet-vertrouwelijke gegevens, zoals een configuratiebestand of omgevingsvariabelen, kunt opslaan. Container insights zoekt naar een ConfigMap op elk cluster met bepaalde instellingen waarmee gegevens worden gedefinieerd die moeten worden verzameld.

Gegevensverzameling configureren met DCR

De DCR die door Container Insights is gemaakt, heeft de naam MSCI-cluster-region-cluster-name><<>. U kunt deze DCR samen met anderen in uw abonnement bekijken en u kunt deze bewerken met behulp van methoden die worden beschreven in Regels voor gegevensverzameling maken en bewerken in Azure Monitor. Hoewel u de DCR rechtstreeks kunt wijzigen voor bepaalde aanpassingen, kunt u de meest vereiste configuratie uitvoeren met behulp van de onderstaande methoden. Zie Gegevenstransformaties in Container Insights voor meer informatie over het rechtstreeks bewerken van dcr voor geavanceerdere configuraties.

Belangrijk

AKS-clusters moeten een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit gebruiken. Als het cluster een service-principal gebruikt, moet u het cluster bijwerken om een door het systeem toegewezen beheerde identiteit of een door de gebruiker toegewezen beheerde identiteit te gebruiken.

DCR configureren met Azure Portal

Met behulp van Azure Portal kunt u kiezen uit meerdere vooraf ingestelde configuraties voor het verzamelen van gegevens in Container Insights. Deze configuraties omvatten verschillende sets tabellen en verzamelingsfrequenties, afhankelijk van uw specifieke prioriteiten. U kunt ook de instellingen aanpassen om alleen de gegevens te verzamelen die u nodig hebt. U kunt De Azure-portal gebruiken om de configuratie op uw bestaande cluster aan te passen nadat Container Insights is ingeschakeld, of u kunt deze configuratie uitvoeren wanneer u Container Insights inschakelt op uw cluster.

  1. Selecteer het cluster in Azure Portal.

  2. Selecteer de optie Inzichten in de sectie Bewaking van het menu.

  3. Als Container Insights al is ingeschakeld op het cluster, selecteert u de knop Bewakingsinstellingen . Als dat niet zo is, selecteert u Azure Monitor configureren en raadpleegt u Bewaking inschakelen in uw Kubernetes-cluster met Azure Monitor voor meer informatie over het inschakelen van bewaking.

    Schermopname van AKS-cluster met de knop Monitorinstellingen.

  4. Voor Kubernetes met AKS en Arc selecteert u Beheerde identiteit gebruiken als u het cluster nog niet hebt gemigreerd naar beheerde identiteitsverificatie.

  5. Selecteer een van de vooraf ingestelde kosten.

    Schermopname van de onboardingopties.

    Vooraf ingestelde kosten Verzamelingsfrequentie Naamruimtefilters Syslog-verzameling Verzamelde gegevens
    Standaard 1 m Geen Niet ingeschakeld Alle standaardtabellen voor containerinzichten
    Geoptimaliseerd voor kosten 5 m Sluit kube-system, gatekeeper-system, azure-arc uit Niet ingeschakeld Alle standaardtabellen voor containerinzichten
    Syslog 1 m Geen Standaard ingeschakeld Alle standaardtabellen voor containerinzichten
    Logboeken en gebeurtenissen 1 m Geen Niet ingeschakeld ContainerLog/ContainerLogV2
    KubeEvents
    KubePodInventory
  6. Als u de instellingen wilt aanpassen, klikt u op Verzamelingsinstellingen bewerken.

    Schermopname van de opties voor verzamelingsinstellingen.

    Name Beschrijving
    Verzamelingsfrequentie Bepaalt hoe vaak de agent gegevens verzamelt. Geldige waarden zijn 1m - 30m in intervallen van 1 min. De standaardwaarde is 1 min.
    Naamruimtefiltering Uit: verzamelt gegevens op alle naamruimten.
    Opnemen: verzamelt alleen gegevens van de waarden in het veld naamruimten .
    Uitsluiten: verzamelt gegevens van alle naamruimten, met uitzondering van de waarden in het veld naamruimten .

    Matrix van door komma's gescheiden Kubernetes-naamruimten voor het verzamelen van inventaris- en prestatiegegevens op basis van de naamruimteFilteringMode. Naamruimten = ["kube-system", "default"] met een include-instelling verzamelt bijvoorbeeld alleen deze twee naamruimten. Met de instelling Uitsluiten verzamelt de agent gegevens van alle andere naamruimten, met uitzondering van kube-system en standaard.
    Verzamelde gegevens Definieert welke Container Insights-tabellen moeten worden verzameld. Zie hieronder voor een beschrijving van elke groepering.
    ContainerLogV2 inschakelen Booleaanse vlag om het ContainerLogV2-schema in te schakelen. Als deze optie is ingesteld op true, worden de stdout/stderr-logboeken opgenomen in de tabel ContainerLogV2 . Zo niet, dan worden de containerlogboeken opgenomen in de ContainerLog-tabel , tenzij anders opgegeven in de ConfigMap. Wanneer u de afzonderlijke streams opgeeft, moet u de bijbehorende tabel voor ContainerLog of ContainerLogV2 opnemen.
    Syslog-verzameling inschakelen Hiermee schakelt u de Syslog-verzameling uit het cluster in.

    Met de optie Verzamelde gegevens kunt u de tabellen selecteren die voor het cluster zijn ingevuld. De tabellen worden gegroepeerd op de meest voorkomende scenario's. Als u afzonderlijke tabellen wilt opgeven, moet u de DCR wijzigen met een andere methode.

    Schermopname van de verzamelde gegevensopties.

    Groepering Tabellen Opmerkingen
    Alles (standaard) Alle standaardtabellen voor containerinzichten Vereist voor het inschakelen van de standaardvisualisaties van Container Insights
    Prestaties Prestatie, InsightsMetrics
    Logboeken en gebeurtenissen ContainerLog of ContainerLogV2, KubeEvents, KubePodInventory Aanbevolen als u beheerde prometheus-metrische gegevens hebt ingeschakeld
    Workloads, implementaties en HPA's InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
    Permanente volumes InsightsMetrics, KubePVInventory
  7. Klik op Configureren om de instellingen op te slaan.

Toepasselijke tabellen en metrische gegevens voor DCR

De instellingen voor verzamelingsfrequentie en naamruimtefiltering in de DCR zijn niet van toepassing op alle Container Insights-gegevens. De volgende tabellen bevatten de tabellen in de Log Analytics-werkruimte die wordt gebruikt door Container Insights en de metrische gegevens die worden verzameld, samen met de instellingen die op elk van toepassing zijn.

Tabelnaam Interval? Naamruimten? Opmerkingen
ContainerInventory Ja Ja
ContainerNodeInventory Ja Nr. De instelling voor het verzamelen van gegevens voor naamruimten is niet van toepassing omdat Kubernetes Node geen resource met naamruimtebereik is
KubeNodeInventory Ja Nr. Instelling voor gegevensverzameling voor naamruimten is niet van toepassing op Kubernetes Node is geen resource met een naamruimtebereik
KubePodInventory Ja Ja
KubePVInventory Ja Ja
KubeServices Ja Ja
KubeEvents Nr. Ja Instelling voor gegevensverzameling voor interval is niet van toepassing op de Kubernetes-gebeurtenissen
Perf Ja Ja De instelling voor het verzamelen van gegevens voor naamruimten is niet van toepassing op de gerelateerde metrische gegevens van Kubernetes Node, omdat het Kubernetes-knooppunt geen object met een naamruimtebereik is.
InsightsMetrics Ja Ja Instellingen voor gegevensverzameling zijn alleen van toepassing op de metrische gegevens die de volgende naamruimten verzamelen: container.azm.ms/kubestate, container.azm.ms/pv en container.azm.ms/gpu
Metrische naamruimte Interval? Naamruimten? Opmerkingen
Insights.container/nodes Ja Nr. Node is geen resource met naamruimtebereik
Insights.container/pods Ja Ja
Insights.container/containers Ja Ja
Insights.container/persistentvolumes Ja Ja

Waarden streamen in DCR

Wanneer u de tabellen opgeeft die moeten worden verzameld met behulp van CLI of ARM, geeft u een stroomnaam op die overeenkomt met een bepaalde tabel in de Log Analytics-werkruimte. De volgende tabel bevat de streamnaam voor elke tabel.

Notitie

Als u bekend bent met de structuur van een regel voor gegevensverzameling, worden de stroomnamen in deze tabel opgegeven in de sectie Gegevensstromen van de DCR.

Stream Tabel containerinzichten
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerLogV2-HighScale ContainerLogV2 (modus Hoog schalen)1
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

1 Gebruik niet zowel Microsoft-ContainerLogV2 als Microsoft-ContainerLogV2-HighScale in dezelfde DCR. Dit resulteert in dubbele gegevens.

DCR delen met meerdere clusters

Wanneer u Container Insights inschakelt voor een Kubernetes-cluster, wordt er een nieuwe DCR voor dat cluster gemaakt en kan de DCR voor elk cluster onafhankelijk worden gewijzigd. Als u meerdere clusters met aangepaste bewakingsconfiguraties hebt, wilt u mogelijk één DCR delen met meerdere clusters. Vervolgens kunt u wijzigingen aanbrengen in één DCR die automatisch worden geïmplementeerd voor alle clusters die eraan zijn gekoppeld.

Een DCR is gekoppeld aan een cluster met een gegevensverzamelingsregel die DCRA (Data Collection Rule) koppelt. Gebruik de preview DCR-ervaring om bestaande DCR-koppelingen voor elk cluster weer te geven en te verwijderen. U kunt deze functie vervolgens gebruiken om een koppeling toe te voegen aan één DCR voor meerdere clusters.

Gegevensverzameling configureren met behulp van ConfigMap

ConfigMaps zijn een Kubernetes-mechanisme waarmee u niet-vertrouwelijke gegevens, zoals een configuratiebestand of omgevingsvariabelen, kunt opslaan. Container insights zoekt naar een ConfigMap op elk cluster met bepaalde instellingen waarmee gegevens worden gedefinieerd die moeten worden verzameld.

Belangrijk

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.

Vereisten

  • De minimale agentversie die wordt ondersteund voor het verzamelen van stdout-, stderr- en omgevingsvariabelen van containerworkloads is ciprod06142019 of hoger.

ConfigMap configureren en implementeren

Gebruik de volgende procedure om het configuratiebestand ConfigMap in uw cluster te configureren en te implementeren:

  1. Als u nog geen ConfigMap voor Container Insights hebt, downloadt u het YAML-bestand van de sjabloon ConfigMap en opent u het in een editor.

  2. Bewerk het YAML-bestand ConfigMap met uw aanpassingen. De sjabloon bevat alle geldige instellingen met beschrijvingen. Als u een instelling wilt inschakelen, verwijdert u het opmerkingsteken (#) en stelt u de waarde ervan in.

  3. Maak een ConfigMap door de volgende kubectl-opdracht uit te voeren:

    kubectl config set-context <cluster-name>
    kubectl apply -f <configmap_yaml_file.yaml>
    
    # Example: 
    kubectl config set-context my-cluster
    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`.
    

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 -c ama-logs

Als er configuratiefouten zijn van de Azure Monitor Agent-pods, worden in de uitvoer fouten weergegeven die vergelijkbaar zijn met de volgende:

***************Start Config Processing******************** 
config::unsupported/missing config schema version - 'v21' , using defaults

Gebruik de volgende opties om meer problemen met configuratiewijzigingen uit te voeren:

  • Gebruik dezelfde kubectl logs opdracht van een agentpod.

  • Bekijk livelogboeken op fouten die vergelijkbaar zijn met de volgende:

    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
    
  • Gegevens worden elk uur naar de KubeMonAgentEvents tabel in uw Log Analytics-werkruimte 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 Tags kolom 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.

ConfigMap-instellingen

In de volgende tabel worden de instellingen beschreven die u kunt configureren voor het beheren van gegevensverzameling met ConfigMap.

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
Hiermee bepaalt u de verzameling omgevingsvariabelen voor alle pods en knooppunten in het cluster. Als deze niet is opgegeven in de ConfigMap, is truede standaardwaarde .
[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 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.
[metadata_collection]
enabled
Booleaanse waarde true
false
Hiermee bepaalt u of metagegevens worden verzameld in de KubernetesMetadata kolom van de ContainerLogV2 tabel.
[metadata_collection]
include_fields
String Door komma's gescheiden matrix Lijst met metagegevensvelden die moeten worden opgenomen. Als de instelling niet wordt gebruikt, worden alle velden verzameld. Geldige waarden zijn ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
[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 .

Volgende stappen