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 - LogLevel 1- KubernetesMetadata 2 |
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 opmerkingeninclude_fields
verwijderen en de velden opgeven die moeten worden verzameld.
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.
- 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
Migreren naar verificatie van beheerde identiteiten. Meer informatie.
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
- 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
.
Pas de ConfigMap toe. Zie configuratiemap configureren voor meer informatie over het implementeren en configureren van de ConfigMap.
Na een paar minuten moeten gegevens naar uw ContainerLogV2-tabel stromen met kubernetes-logboekmetagegevens, zoals wordt weergegeven in de onderstaande schermopname.
Onboarden naar de Grafana-dashboardervaring
- Selecteer op het tabblad Inzichten de monitorinstellingen en onboarding naar Grafana Dashboard met versie 10.3.4+
- Zorg ervoor dat u een van de grafana-rollen Beheer/Editor/Lezer hebt door toegangsbeheer (IAM) te controleren. Zo niet, voeg ze toe.
- 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.
Navigeer naar uw Grafana-werkruimte en importeer het ContainerLogV2-dashboard vanuit grafana-galerie.
Selecteer uw gegevens voor DataSource, Subscription, ResourceGroup, Cluster, Namespace en Labels. Het dashboard wordt vervolgens ingevuld zoals wordt weergegeven in de onderstaande schermopname.
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.
- Download de configuratiemap en wijzig de instellingen van false in true, zoals te zien is in de onderstaande schermopname.
Pas de ConfigMap toe. Zie configuratiemap configureren voor meer informatie over het implementeren en configureren van de ConfigMap.
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)
- Download de configmap en wijzig de instellingen met betrekking tot
collect_system_pod_logs
enexclude_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.
- 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
Logboekregistratie met meerdere regels ingeschakeld
Java-stacktracering
Python-stacktracering
Volgende stappen
- Configureer basislogboeken voor ContainerLogv2.
- Meer informatie over het uitvoeren van query's op gegevens uit ContainerLogV2
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort: Gedurende 2024 worden GitHub Issues uitgefaseerd als het feedbackmechanisme voor inhoud. Dit wordt vervangen door een nieuw feedbacksysteem. Ga voor meer informatie naar:Feedback verzenden en bekijken voor