Schéma protokolu Container Insights
Container Insights ukládá data protokolů, která shromažďuje, v tabulce s názvem ContainerLogV2 v pracovním prostoru služby Log Analytics. Tento článek popisuje schéma této tabulky a možnosti konfigurace. Porovná také tuto tabulku se starší tabulkou ContainerLog a poskytuje podrobnosti pro migraci z ní.
Porovnání tabulek
ContainerLogV2 je výchozí schéma rozhraní příkazového řádku verze 2.54.0 a vyšší. Toto je výchozí tabulka pro zákazníky, kteří nasadí přehledy kontejnerů s ověřováním spravovaných identit. ContainerLogV2 je možné explicitně povolit prostřednictvím rozhraní příkazového řádku verze 2.51.0 nebo vyšší pomocí nastavení shromažďování dat.
Důležité
Podpora tabulky ContainerLog bude vyřazena 30. září 2026.
Následující tabulka uvádí hlavní rozdíly mezi používáním schématu ContainerLogV2 a ContainerLog.
Rozdíly ve funkcích | ContainerLog | ContainerLogV2 |
---|---|---|
Schéma | Podrobnosti v ContainerLogu | Podrobnosti v ContainerLogV2. Další sloupce jsou: - ContainerName - PodName - PodNamespace - LogLevel 1- KubernetesMetadata 2 |
Onboarding | Konfigurovatelné pouze prostřednictvím objektu ConfigMap. | Konfigurovatelné prostřednictvím objektu ConfigMap i DCR. 3 |
Ceny | Kompatibilní pouze s protokoly analýzy s plnou cenou. | Kromě analytických protokolů podporuje úroveň protokolů Basic s nízkými náklady. |
Dotazování | Vyžaduje více operací spojení s tabulkami inventáře pro standardní dotazy. | Obsahuje další metadata podu a kontejneru, aby se snížila složitost dotazů a operace spojení. |
Multiline | Nepodporuje se, víceřádkové položky jsou rozdělené na více řádků. | Podpora víceřádkového protokolování, které umožňuje konsolidované a jednoduché položky pro víceřádkový výstup. |
1 Pokud LogMessage
je platný JSON a má klíč s názvem level
, použije se jeho hodnota. V opačném případě se porovnávání klíčových slov založených na regulárním výrazu používá k odvození LogLevel
z LogMessage
. Výsledkem tohoto odvozování může být nesprávná klasifikace. LogLevel
je řetězcové pole s hodnotou stavu, například CRITICAL
, ERROR
, WARNING
INFO
, DEBUG
, , , TRACE
nebo UNKNOWN
.
2 KubernetesMetadata
je volitelný sloupec, který je povolený s metadaty Kubernetes. Hodnota tohoto pole je JSON s poli podLabels
, , podAnnotations
podUid
, Image
, , ImageTag
a Image repo
.
Konfigurace 3 DCR vyžaduje ověřování spravovaných identit.
Poznámka:
Export do centra událostí a účtu úložiště se nepodporuje, pokud příchozí LogMessage
kód JSON není platný. Nejlepšího výkonu dosáhnete generováním protokolů kontejneru ve formátu JSON.
Povolení schématu ContainerLogV2
Povolte schéma ContainerLogV2 pro cluster buď pomocí pravidla shromažďování dat clusteru (DCR) nebo ConfigMap. Pokud jsou obě nastavení povolená, má přednost objekt ConfigMap. Tabulka ContainerLog
se používá pouze v případech, kdy je explicitně nastavená hodnota DCR i ConfigMap.
Před povolením schématu ContainerLogsV2 byste měli posoudit, jestli máte nějaká pravidla upozornění, která spoléhají na tabulku ContainerLog . Aby se nová tabulka používala, je potřeba aktualizovat všechna taková upozornění. Spuštěním následujícího dotazu Azure Resource Graph vyhledejte pravidla upozornění, která odkazují na ContainerLog
tabulku.
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
Filtrování metadat a protokolů Kubernetes
Filtrování metadat a protokolů Kubernetes rozšiřuje schéma ContainerLogsV2 o další metadata Kubernetes. Funkce filtrování protokolů poskytuje možnosti filtrování pro kontejnery úloh i platforem. Tyto funkce poskytují bohatší kontext a lepší přehled o vašich úlohách.
Funkce
Vylepšené schéma ContainerLogV2 Při povolení metadat protokolů Kubernetes přidá sloupec, který
ContainerLogV2
vylepšíKubernetesMetadata
řešení potíží s jednoduchými dotazy protokolu a eliminuje potřebu spojení s jinými tabulkami. Pole v tomto sloupci zahrnují:PodLabels
,PodAnnotations
,PodUid
,Image
,ImageID
,ImageRepo
.ImageTag
Tato pole vylepšují prostředí pro řešení potíží pomocí dotazů protokolu, aniž byste se museli spojovat s jinými tabulkami. Podrobnosti o povolení funkce metadat Kubernetes najdete níže.Úroveň protokolu: Tato funkce přidá
LogLevel
sloupec do ContainerLogV2 s možnými kritickými hodnotami, chybami, upozorněními, informacemi, laděním, trasováním nebo neznámým. To vám pomůže vyhodnotit stav aplikace na základě úrovně závažnosti. Přidáním řídicího panelu Grafana můžete vizualizovat trendy na úrovni protokolu v průběhu času a rychle určit ovlivněné prostředky.Řídicí panel Grafana pro vizualizaci Řídicí panel Grafana poskytuje barevnou vizualizaci úrovně protokolu a poskytuje také přehled o objemu protokolů, rychlosti protokolů, záznamech protokolů a protokolech. Můžete získat analýzu citlivou na čas, dynamické přehledy o trendech na úrovni protokolů v průběhu času a zásadní monitorování v reálném čase. Řídicí panel také poskytuje podrobný rozpis podle počítačů, podů a kontejnerů, což umožňuje podrobnou analýzu a určení řešení potíží. Podrobnosti o instalaci řídicího panelu Grafana najdete níže.
Filtrování protokolů založené na anotaci pro úlohy Efektivní filtrování protokolů prostřednictvím poznámek podů Díky tomu se můžete soustředit na relevantní informace, aniž byste museli procházet šumem. Filtrování na základě poznámek umožňuje vyloučit shromažďování protokolů pro určité pody a kontejnery přidáním poznámek k podu, což by pomohlo výrazně snížit náklady na log analytics. Podrobnosti o konfiguraci filtrování na základě poznámek najdete v tématu Filtrování protokolu založeného na poznámkách.
Filtrování protokolů založené na configmap pro protokoly platformy (System Kubernetes Namespaces) Protokoly platformy jsou generovány kontejnery v systémových (nebo podobných omezených) oborech názvů. Ve výchozím nastavení jsou všechny protokoly kontejneru ze systémového oboru názvů vyloučeny, aby se minimalizovaly náklady na data v pracovním prostoru služby Log Analytics. V konkrétních scénářích řešení potíží ale hrají zásadní roli protokoly kontejnerů systémového kontejneru. Jedním z příkladů je
coredns
kontejner vkube-system
oboru názvů.
Povolení metadat Kubernetes
Důležité
Kolekce metadat Kubernetes vyžaduje ověřování spravovaných identit a ContainerLogsV2
Povolte metadata Kubernetes pomocí objektu ConfigMap s následujícím nastavením. Všechna pole metadat se ve výchozím nastavení shromažďují, když je tato možnost povolená metadata_collection
. Zrušte include_fields
komentář k zadání jednotlivých polí, která se mají shromažďovat.
[log_collection_settings.metadata_collection]
enabled = true
include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
Po několika minutách KubernetesMetadata
by se sloupec měl zahrnout do všech dotazů protokolu pro ContainerLogV2
tabulku, jak je znázorněno níže.
Instalace řídicího panelu Grafana
Důležité
Pokud jste grafana povolili pomocí pokynů v tématu Povolení monitorování clusterů Kubernetes, vaše instance Grafana by už měla mít přístup k vašemu pracovnímu prostoru služby Azure Monitor pro metriky Prometheus. Řídicí panel metadat protokolů Kubernetes také vyžaduje přístup k pracovnímu prostoru služby Log Analytics, který obsahuje data protokolů. Pokyny k udělení role Čtenář monitorování pro pracovní prostor služby Log Analytics najdete v tématu Úprava přístupových oprávnění ke službě Azure Monitor .
Naimportujte řídicí panel z galerie Grafana na řídicím panelu ContainerLogV2. Pak můžete otevřít řídicí panel a vybrat hodnoty pro DataSource, Subscription, ResourceGroup, Cluster, Namespace a Labels.
Poznámka:
Při počátečním načtení řídicího panelu Grafana se můžou zobrazit chyby kvůli tomu, že proměnné ještě nejsou vybrané. Pokud chcete zabránit opakovanému opakování, uložte řídicí panel po výběru sady proměnných, aby se při prvním otevření automaticky nastavil.
Víceřádkové protokolování
S povoleným víceřádkovým protokolováním se dříve rozdělují protokoly kontejneru a odesílají se jako jednotlivé položky do tabulky ContainerLogV2. Pokud je stehovaná čára protokolu větší než 64 kB, zkrátí se kvůli omezením pracovního prostoru služby Log Analytics. Tato funkce také podporuje trasování zásobníků .NET, Go, Python a Java, které se v tabulce ContainerLogV2 zobrazují jako samostatné položky. Povolte víceřádkové protokolování pomocí objektu ConfigMap, jak je popsáno v tématu Konfigurace shromažďování dat v Nástroji Container Insights pomocí configMap.
Poznámka:
Konfigurační mapa teď obsahuje možnost specifikace jazyka, kde zákazníci můžou vybrat pouze jazyky, které mají zájem. Tuto funkci lze povolit úpravou jazyků v možnosti stacktrace_languages v konfigurační mapě.
Následující snímky obrazovky ukazují protokolování víceřádkového protokolování pro trasování zásobníku výjimek Go:
Protokolování s více řádky je zakázané
Protokolování s více řádky je povolené
Trasování zásobníku Java
Trasování zásobníku Pythonu
Další kroky
- Nakonfigurujte základní protokoly pro ContainerLogv2.
- Zjistěte, jak dotazovat data z ContainerLogV2