Share via


Container Insights-logboekschema

Container Insights slaat logboekgegevens op die worden verzameld in een tabel met de naam ContainerLogV2. In dit artikel wordt het schema van deze tabel en de vergelijking en migratie van de verouderde ContainerLog-tabel beschreven.

Belangrijk

ContainerLogV2 is het standaardschema via de ConfigMap voor CLI versie 2.54.0 en hoger. ContainerLogV2 is de standaardopname-indeling voor klanten die containerinzichten onboarden met Managed Identity-verificatie met behulp van ARM, Bicep, Terraform, Beleid en Portal-onboarding. ContainerLogV2 kan expliciet worden ingeschakeld via CLI-versie 2.51.0 of hoger met behulp van instellingen voor gegevensverzameling.

Ondersteuning voor de ContainerLog-tabel wordt op 30 september 2026 buiten gebruik gesteld.

Tabelvergelijking

In de volgende tabel ziet u de belangrijkste verschillen tussen het gebruik van het ContainerLogV2- en ContainerLog-schema.

Functieverschillen ContainerLog ContainerLogV2
Schema Details bij ContainerLog. Details van ContainerLogV2.
Aanvullende kolommen zijn:
- ContainerName
- PodName
- PodNamespace
- LogLevel1
- KubernetesMetadata2
Onboarding Alleen configureerbaar via ConfigMap. Configureerbaar via zowel ConfigMap als DCR. 3
Prijzen Alleen compatibel met volledige analyselogboeken. Biedt ondersteuning voor de laag eenvoudige logboeken naast analyselogboeken.
Uitvoeren van query's Vereist meerdere joinbewerkingen met voorraadtabellen voor standaardquery's. Bevat aanvullende pod- en containermetagegevens om de complexiteit van query's en joinbewerkingen te verminderen.
Meerdere regels Niet ondersteund, vermeldingen met meerdere regels worden gesplitst in meerdere rijen. Ondersteuning voor logboekregistratie met meerdere regels om geconsolideerde, enkelvoudige vermeldingen voor uitvoer met meerdere regels toe te staan.

1Als LogMessage een geldig JSON is en een sleutel met een benoemd niveau heeft, wordt de waarde ervan gebruikt. Anders gebruiken we een op regex gebaseerde benadering voor het vergelijken van trefwoorden om LogLevel af te stellen van de LogMessage zelf. Houd er rekening mee dat u mogelijk een aantal onjuiste classificaties ziet, omdat deze waarde wordt afgeleid.

2KubernetesMetadata is een optionele kolom en het verzamelen van dit veld kan worden ingeschakeld met de functie Kubernetes Metadata. De waarde van dit veld is JSON en bevat velden zoals podLabels, podAnnotations, podUid, Image, ImageTag en Image-opslagplaats.

3DCR-configuratie wordt niet ondersteund voor clusters die gebruikmaken van op service-principal gebaseerde verificatieclusters. Als u deze ervaring wilt gebruiken, migreert u uw clusters met een service-principal naar een beheerde identiteit.

Notitie

Exporteren naar Event Hub en opslagaccount wordt niet ondersteund als de binnenkomende LogMessage geen geldige JSON is. Voor de beste prestaties raden we u aan containerlogboeken in JSON-indeling te verzenden.

De impact op bestaande waarschuwingen beoordelen

Voordat u het ContainerLogsV2-schema inschakelt, moet u beoordelen of u waarschuwingsregels hebt die afhankelijk zijn van de ContainerLog-tabel . Dergelijke waarschuwingen moeten worden bijgewerkt om de nieuwe tabel te kunnen gebruiken.

Als u wilt scannen op waarschuwingen die verwijzen naar de ContainerLog-tabel , voert u de volgende Azure Resource Graph-query uit:

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 "ContainerLog"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Het ContainerLogV2-schema inschakelen

U kunt het ContainerLogV2-schema voor een cluster inschakelen met behulp van de DCR (Data Collection Rule) of ConfigMap van het cluster. Als beide instellingen zijn ingeschakeld, heeft de ConfigMap voorrang. Stdout- en stderr-logboeken worden alleen opgenomen in de ContainerLog-tabel wanneer zowel de DCR als ConfigMap expliciet zijn ingesteld op uit.

Kubernetes-metagegevens en logboeken filteren

Kubernetes Metadata and Logs Filtering verbetert het ContainerLogsV2-schema met meer Kubernetes-metagegevens, zoals PodLabels, PodAnnotations, PodUid, Image, ImageID, ImageRepo en ImageTag. Daarnaast biedt de functie Logboekfiltering filtermogelijkheden voor zowel workload- als platformcontainers (dat zijn systeemnaamruimten). Met deze functies krijgen gebruikers uitgebreidere context en hebben ze meer inzicht in hun workloads.

Belangrijkste functies

  • Uitgebreid ContainerLogV2-schema met Kubernetes-metagegevensvelden: Kubernetes Logs Metadata introduceert andere optionele metagegevensvelden die het oplossen van problemen verbeteren met eenvoudige Log Analytics-query's en de noodzaak voor samenvoegen met andere tabellen wegneemt. Deze velden bevatten essentiële informatie, zoals 'PodLabels', 'PodAnnotations', 'PodUid', 'Image', 'ImageID', 'ImageRepo' en 'ImageTag'. Door deze context direct beschikbaar te hebben, kunnen gebruikers hun probleemoplossing expediaat maken en de problemen snel identificeren.

  • Aangepaste lijstconfiguratie voor opnemen: gebruikers kunnen nieuwe metagegevensvelden aanpassen die ze willen zien door de configmap te bewerken. Houd er rekening mee dat alle metagegevensvelden standaard worden verzameld wanneer de metadata_collection optie is ingeschakeld en als u specifieke velden wilt selecteren, moet u opmerkingen include_fields verwijderen en de velden opgeven die moeten worden verzameld.

Schermopname van metagegevensvelden.

  • Uitgebreid ContainerLogV2-schema met logboekniveau: gebruikers kunnen nu de status van de toepassing beoordelen op basis van ernstniveaus met kleurcode, zoals KRITIEK, FOUT, WAARSCHUWING, INFO, FOUTOPSPORING, TRACE of ONBEKEND. Het is een cruciaal hulpmiddel voor het reageren op incidenten en proactieve bewaking. Door de ernstniveaus visueel te onderscheiden, kunnen gebruikers snel betrokken resources aanwijzen. Het in kleur gecodeerde systeem stroomlijnt het onderzoeksproces en stelt gebruikers in staat om nog verder in te zoomen door het deelvenster te selecteren voor een verkenningservaring voor verdere foutopsporing. Het is echter belangrijk om te weten dat deze functionaliteit alleen van toepassing is bij het gebruik van Grafana. Als u Log Analytics Workspace gebruikt, is logLevel gewoon een andere kolom in de tabel ContainerLogV2.

  • Logboekfiltering op basis van aantekeningen voor workloads: Efficiënte techniek voor logboekfiltering via podaantekeningen. Gebruikers kunnen zich richten op relevante informatie zonder ruis te doorzoeken. Met filteren op basis van aantekeningen kunnen gebruikers logboekverzameling voor bepaalde pods en containers uitsluiten door aantekeningen te maken bij de pod, waardoor de kosten voor log analytics aanzienlijk worden verminderd.

  • Op Configuratiemap gebaseerde logboekfilters voor platformlogboeken (Systeem Kubernetes-naamruimten): Platformlogboeken worden verzonden door containers in de systeemnaamruimten (of vergelijkbare beperkte) naamruimten. Standaard worden alle containerlogboeken van de systeemnaamruimte uitgesloten om de Kosten van Log Analytics te minimaliseren. In specifieke scenario's voor probleemoplossing spelen containerlogboeken van systeemcontainers echter een cruciale rol. Denk bijvoorbeeld aan de coredns-container binnen de kube-system-naamruimte. Als u logboeken (stdout en stderr) uitsluitend wilt verzamelen van het coredns-containerformulier kube-system, kunt u de volgende instellingen inschakelen in de configmap.

Schermopname van filtervelden.

  • Grafana-dashboard voor visualisatie: Op het Grafana-dashboard worden niet alleen visualisaties met kleurcodes van logboekniveaus weergegeven, variërend van KRITIEK tot ONBEKEND, maar ook in logboekvolume, logboeksnelheid, logboekrecords, logboeken. Gebruikers kunnen time-gevoelige analyse, dynamische inzichten krijgen in trends op logboekniveau in de loop van de tijd en cruciale realtime bewaking. We bieden ook een gedetailleerde uitsplitsing per computer, pod en container, die uitgebreide analyse en vastgemaakte probleemoplossing mogelijk maakt. En ten slotte kunnen gebruikers in de nieuwe tabel Logboeken gedetailleerde details bekijken met de uitvouwweergave en de gegevens in elke kolom bekijken en inzoomen op de informatie die ze willen zien.

Hier volgt een video met het Grafana-dashboard:

Kubernetes-metagegevens en logboeken filteren inschakelen

Vereisten

  1. Migreren naar verificatie van beheerde identiteiten. Meer informatie.

  2. Zorg ervoor dat ContainerLogV2 is ingeschakeld. Voor beheerde identiteitsverificatieclusters is dit schema standaard ingeschakeld. Als dat niet het is, schakelt u het ContainerLogV2-schema in.

Beperkingen

Het ContainerLogV2 Grafana-dashboard wordt niet ondersteund met de SKU Basislogboeken in de tabel ContainerLogV2.

Kubernetes-metagegevens inschakelen

  1. Download de configuratiemap en wijzig de instellingen van false in true, zoals te zien is in de onderstaande schermopname. Houd er rekening mee dat alle ondersteunde metagegevensvelden standaard worden verzameld. Als u specifieke velden wilt verzamelen, geeft u de vereiste velden op in include_fields.

Schermopname van het inschakelen van metagegevensvelden.

  1. Pas de ConfigMap toe. Zie configuratiemap configureren voor meer informatie over het implementeren en configureren van de ConfigMap.

  2. Na een paar minuten moeten gegevens naar uw ContainerLogV2-tabel stromen met kubernetes-logboekmetagegevens, zoals wordt weergegeven in de onderstaande schermopname.

Schermopname van containerlogv2.

Onboarden naar de Grafana-dashboardervaring

  1. Selecteer op het tabblad Inzichten de monitorinstellingen en onboarding naar Grafana Dashboard met versie 10.3.4+

Schermopname van grafana onboarding.

  1. Zorg ervoor dat u een van de grafana-rollen Beheer/Editor/Lezer hebt door toegangsbeheer (IAM) te controleren. Zo niet, voeg ze toe.

Schermopname van grafana-rollen.

  1. Zorg ervoor dat uw Grafana-exemplaar toegang heeft tot de Azure Logs Analytics(LA)-werkruimte. Als deze geen toegang heeft, moet u de rol Lezer van Grafana Instance Monitoring Reader verlenen aan uw LA-werkruimte.

Schermopname van grafana.

  1. Navigeer naar uw Grafana-werkruimte en importeer het ContainerLogV2-dashboard vanuit grafana-galerie.

  2. Selecteer uw gegevens voor DataSource, Subscription, ResourceGroup, Cluster, Namespace en Labels. Het dashboard wordt vervolgens ingevuld zoals wordt weergegeven in de onderstaande schermopname.

Schermopname van grafana-dashboard.

Notitie

Wanneer u het Grafana-dashboard in eerste instantie laadt, kan dit enkele fouten veroorzaken omdat er nog geen variabelen zijn geselecteerd. Als u wilt voorkomen dat dit wordt terugkeren, slaat u het dashboard op nadat u een set variabelen hebt geselecteerd, zodat het standaard wordt bij het eerste openen.

Filteren op basis van aantekeningen inschakelen

Volg de onderstaande stappen om filteren op basis van aantekeningen in te schakelen. Zoek de koppeling hier zodra de gerelateerde filterdocumentatie is gepubliceerd.

  1. Download de configuratiemap en wijzig de instellingen van false in true, zoals te zien is in de onderstaande schermopname.

Schermopname van aantekeningen.

  1. Pas de ConfigMap toe. Zie configuratiemap configureren voor meer informatie over het implementeren en configureren van de ConfigMap.

  2. Voeg de vereiste aantekeningen toe aan de specificatie van uw workloadpod. In de volgende tabel worden verschillende mogelijke podaantekeningen en beschrijvingen van wat ze doen gemarkeerd.

Annotatie Beschrijving
fluentbit.io/exclude: "true" Sluit beide stdout- en stderr-streams uit op alle containers in de Pod
fluentbit.io/exclude_stdout: "true" Sluit alleen stdout-stream uit voor alle containers in de pod
fluentbit.io/exclude_stderr: "true" Sluit alleen stderr-stream uit op alle containers in de pod
fluentbit.io/exclude_container1: "true" Sluit beide stdout- en stderr-streams alleen uit voor de container1 in de pod
fluentbit.io/exclude_stdout_container1: "true" Alleen stdout uitsluiten voor de container1 in de pod

Notitie

Deze aantekeningen zijn vloeiend op basis van bit. Als u uw eigen fluent-bit-oplossing voor logboekverzameling gebruikt met het Filter van de Kubernetes-invoegtoepassing en uitsluiting op basis van aantekeningen, wordt het verzamelen van logboeken van zowel Container Insights als uw oplossing gestopt.

Hier volgt een voorbeeld van fluentbit.io/exclude: "true" aantekeningen in podspecificatie:

apiVersion: v1 
kind: Pod 
metadata: 
 name: apache-logs 
 labels: 
  app: apache-logs 
 annotations: 
  fluentbit.io/exclude: "true" 
spec: 
 containers: 
 - name: apache 
  image: edsiper/apache_logs 

Logboekfiltering op basis van ConfigMap voor platformlogboeken (Systeem Kubernetes-naamruimten)

  1. Download de configmap en wijzig de instellingen met betrekking tot collect_system_pod_logs en exclude_namespaces.

Als u bijvoorbeeld stdout & stderr-logboeken van coredns-container in de kube-system-naamruimte wilt verzamelen, moet u ervoor zorgen dat de kube-system-naamruimte zich niet bevindt exclude_namespaces en deze functie alleen is beperkt tot de volgende systeemnaamruimten: kube-system, gatekeeper-system, calico-system, azure-arc, kube-public en kube-node-lease-naamruimten.

Schermopname van filtervelden.

  1. Pas de ConfigMap toe. Zie configuratiemap configureren voor meer informatie over het implementeren en configureren van de ConfigMap.

Logboekregistratie met meerdere regels in Container Insights

Als logboekregistratie met meerdere regels is ingeschakeld, worden eerder gesplitste containerlogboeken samengevoegd en als één vermelding naar de ContainerLogV2-tabel verzonden. Als de gestikte logboeklijn groter is dan 64 kB, wordt deze afgekapt vanwege de limieten van de Log Analytics-werkruimte. Deze functie biedt ook ondersteuning voor .NET-, Go-, Python- en Java-stacktraceringen, die worden weergegeven als één vermelding in de ContainerLogV2-tabel. Schakel logboekregistratie met meerdere regels in met ConfigMap, zoals beschreven in Gegevensverzameling configureren in Container Insights met behulp van ConfigMap.

Notitie

De configmap bevat nu een optie voor taalspecificatie, waarbij de klanten alleen de talen kunnen selecteren waarin ze geïnteresseerd zijn. Deze functie kan worden ingeschakeld door de talen te bewerken in de optie stacktrace_languages in de configmap.

In de volgende schermafbeeldingen ziet u logboekregistratie met meerdere regels voor go-uitzonderingsstacktracering:

Logboekregistratie met meerdere regels uitgeschakeld

Schermopname waarin logboekregistratie met meerdere regels is uitgeschakeld.

Logboekregistratie met meerdere regels ingeschakeld

Schermopname waarin Multi-Line is ingeschakeld.

Java-stacktracering

Schermopname van Multi-Line ingeschakeld voor Java.

Python-stacktracering

Schermopname met Multi-Line ingeschakeld voor Python.

Volgende stappen