Megosztás:


Container Insights-naplóséma

A Container Insights egy Log Analytics-munkaterületen lévő ContainerLogV2 nevű táblában tárolja az általa gyűjtött naplóadatokat. Ez a cikk a táblázat sémáját és a hozzá tartozó konfigurációs beállításokat ismerteti. Emellett összehasonlítja ezt a táblát az örökölt ContainerLog táblával, és részletes információt nyújt a migrálásról.

Táblázat összehasonlítása

A ContainerLogV2 a CLI 2.54.0-s és újabb verziójának alapértelmezett sémája. Ez az alapértelmezett táblázat azoknak az ügyfeleknek, akik a felügyelt identitáshitelesítéssel használják a Container Insights szolgáltatást. A ContainerLogV2 kifejezetten engedélyezhető a CLI 2.51.0-s vagy újabb verziójával az adatgyűjtési beállítások használatával.

Fontos

A ContainerLog tábla támogatása 2026. szeptember 30-án megszűnik.

Az alábbi táblázat a ContainerLogV2 és a ContainerLog séma közötti főbb különbségeket emeli ki.

Szolgáltatások eltérései Kontejnernapló ContainerLogV2
Séma Részletek a ContainerLogban. Részletek a ContainerLogV2 webhelyen.
További oszlopok a következők:
- ContainerName
- PodName
- PodNamespace
- LogLevel 1
- KubernetesMetadata 2
Beillesztés Csak a ConfigMap segítségével konfigurálható. Konfigurálható a ConfigMap és a DCR segítségével is. 3
Díjszabás Csak teljes árú elemzési naplókkal kompatibilis. Az elemzési naplók mellett az alacsony költségű alapszintű naplókat is támogatja.
Lekérdezés A standard lekérdezésekhez több illesztési műveletre van szükség leltártáblákkal. További pod- és tároló metaadatokat tartalmaz a lekérdezések összetettségének csökkentéséhez és az összekapcsolási műveletekhez.
Többsoros Nem támogatott, a többsoros bejegyzések több sorra vannak osztva. Többsoros naplózás támogatása a többsoros kimenet egyesített, egyetlen bejegyzéseként történő megjelenítéséhez.

1 Ha LogMessage érvényes JSON, és rendelkezik egy elnevezett kulccsal level, a rendszer az értékét fogja használni. Amennyiben más módon nem lehetséges, a regex-alapú kulcsszóegyeztetést a LogLevel következtetésére a LogMessage forrásból használjuk. Ez a következtetés néhány helytelen besorolást eredményezhet. LogLevel egy olyan sztringmező, amely egészségügyi értéket tartalmaz, mint például CRITICAL, ERROR, WARNING, INFO, DEBUG, TRACE vagy UNKNOWN.

A 2KubernetesMetadata egy választható oszlop, amely Kubernetes-metaadatokkal van engedélyezve. Ennek a mezőnek az értéke JSON a mezőkkelpodLabels, podAnnotations, , podUidImage, ImageTagés Image repo.

A 3 DCR-konfigurációhoz felügyelt identitáshitelesítés szükséges.

Feljegyzés

A LogMessage mező dinamikus, és támogatja a JSON- és az egyszerű szöveges sztringformátumok betöltését is. A naplóadatok Event Hubsba és Storage-fiókba való exportálása akkor támogatott, ha a bejövő LogMessage érték érvényes JSON vagy egy érvényes egyszerű sztring.

Ha a LogMessage JSON hibás formátumú, akkor a naplóüzenetek karakter escaping-gel lesznek feldolgozva. Alapértelmezés szerint a rendszer a 16 KB-nál nagyobb naplóüzeneteket csonkolja. Ha engedélyezve van a többsoros naplózás , a rendszer csonkolja a 64 KB-nál nagyobb naplóüzeneteket.

A ContainerLogV2 séma engedélyezése

Engedélyezze a ContainerLogV2 sémát egy fürt számára vagy a fürt naplóprofiljának, vagy a ConfigMap használatával. Ha mindkét beállítás engedélyezve van, a ConfigMap elsőbbséget élvez. A ContainerLog tábla csak akkor használatos, ha mindkettő kifejezetten ki van kapcsolva.

A ContainerLogsV2 séma engedélyezése előtt meg kell vizsgálnia, hogy rendelkezik-e a ContainerLog táblára támaszkodó riasztási szabályokkal. Az ilyen riasztásokat frissíteni kell az új tábla használata érdekében. Futtassa a következő Azure Resource Graph-lekérdezést, hogy megkeresse azokat a riasztási szabályokat, amelyek a ContainerLog táblára hivatkoznak.

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

Kubernetes-metaadatok és naplók szűrése

A Kubernetes metaadatainak és naplóinak szűrése kibővíti a ContainerLogsV2 sémát további Kubernetes-metaadatokkal. A naplószűrési funkció szűrési képességeket biztosít a számítási feladatokhoz és a platformtárolókhoz is. Ezek a funkciók gazdagabb környezetet és jobb láthatóságot biztosítanak a számítási feladatokhoz.

Feljegyzés

A Kubernetes-metaadatokkal és naplókkal foglalkozó Grafana irányítópult jelenleg nem támogatja az alapszintű naplókat.

Funkciók

  • Továbbfejlesztett ContainerLogV2 séma Ha a Kubernetes Naplók metaadatai engedélyezve vannak, hozzáad egy meghívandó ContainerLogV2KubernetesMetadata oszlopot, amely javítja az egyszerű napló lekérdezésekkel történő hibaelhárítást, és eltávolítja a más táblákhoz való csatlakozás szükségességét. Az oszlop mezői a következők: PodLabels, PodAnnotations, , PodUidImage, ImageID, ImageRepo. ImageTag Ezek a mezők javítják a napló lekérdezések hibaelhárítási élményét anélkül, hogy más táblákhoz kellene csatlakozniuk. A Kubernetes metaadat-szolgáltatás engedélyezésével kapcsolatos részletekért lásd alább.

  • Naplószint Ez a funkció hozzáad egy oszlopot a ContainerLogV2-hez, amelynek lehetséges értékei: LogLevel, hiba, figyelmeztetés, információ, debug, nyomkövetés vagy ismeretlen. Ez segít felmérni az alkalmazás állapotát a súlyossági szint alapján. A Grafana-irányítópult hozzáadásával megjelenítheti a naplószintű trendeket az idő függvényében, és gyorsan rögzítheti az érintett erőforrásokat.

  • Grafana irányítópult a vizualizációhoz A Grafana irányítópult színkóddal ábrázolja a naplószintet, és betekintést nyújt a naplómennyiségbe, naplósebességbe, naplórekordokba és általánosan a naplókba. Időérzékeny elemzéseket, dinamikus elemzéseket kaphat a naplószintű trendekről az idő függvényében, és kulcsfontosságú valós idejű monitorozást végezhet. Az irányítópult emellett számítógép, pod és tároló szerinti részletes lebontást is biztosít, amely lehetővé teszi a részletes elemzést és a pontos hibaelhárítást. A Grafana-irányítópult telepítésével kapcsolatos részletekért lásd alább.

  • Jegyzetalapú naplószűrés számítási feladatokhoz Hatékony naplószűrés podjegyzeteken keresztül. Ez lehetővé teszi, hogy a releváns információkra összpontosítson anélkül, hogy felesleges információk között keresgélne. A széljegyzetalapú szűrés lehetővé teszi bizonyos podok és tárolók naplógyűjteményének kizárását a pod megjegyzésével, ami jelentősen csökkentené a naplóelemzési költségeket. A széljegyzetalapú szűrés konfigurálásával kapcsolatos részletekért tekintse meg a jegyzetalapú naplószűrést .

  • A platformnaplók (System Kubernetes-névterek) ConfigMap-alapú naplószűrését a rendszerbeli (vagy hasonló korlátozott) névterek tárolói bocsátják ki. Alapértelmezés szerint a rendszernévtér összes tárolónaplója ki van zárva a Log Analytics-munkaterületen lévő adatok költségeinek minimalizálása érdekében. Bizonyos hibaelhárítási forgatókönyvekben azonban a rendszertároló tárolónaplói kulcsfontosságú szerepet játszanak. Ilyen például a coredns névtérben lévő kube-system tároló.

Kubernetes-metaadatok engedélyezése

Fontos

A Kubernetes-metaadatok gyűjtéséhez felügyelt identitás-hitelesítésre és ContainerLogsV2-ra van szükség

Engedélyezze a Kubernetes-metaadatokat a ConfigMap használatával az alábbi beállításokkal. A rendszer alapértelmezés szerint minden metaadatmezőt összegyűjt, ha engedélyezve metadata_collection van. Az include_fields megjegyzésének törlése az egyes gyűjtendő mezők megadásához.

[log_collection_settings.metadata_collection]
    enabled = true
    include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]

Néhány perc elteltével az KubernetesMetadata oszlopnak szerepelnie kell a ContainerLogV2 táblához tartozó naplólekérdezések között az alább látható módon.

Képernyőkép a containerlogv2-ről.

A Grafana-irányítópult telepítése

Fontos

Ha a Grafana használatát a Kubernetes-fürtök monitorozásának engedélyezése című útmutatás alapján engedélyezte, akkor a Grafana-példánynak már hozzáférhet az Azure Monitor munkaterülethez a Prometheus-metrikákra. A Kubernetes Logs Metadata irányítópultjának hozzáférésre van szüksége a Log Analytics-munkaterülethez is, amely naplóadatokat tartalmaz. Az Azure Monitor hozzáférési engedélyeinek módosítása című témakör útmutatást nyújt a Grafana-példány monitorozási olvasó szerepkörének a Log Analytics-munkaterülethez való biztosításához.

Importálja az irányítópultot a Grafana gyűjteményéből a ContainerLogV2 Dashboard néven. Ezután megnyithatja az irányítópultot, és kiválaszthatja az adatforrás, az előfizetés, a ResourceGroup, a fürt, a névtér (Namespace) és a címkék értékeit.

Képernyőkép a grafana irányítópultról.

Feljegyzés

Amikor először betölti a Grafana-irányítópultot, hibák léphetnek fel, mert a változók még nincsenek kiválasztva. Ha meg szeretné akadályozni, hogy ez ismétlődjön, mentse az irányítópultot egy változókészlet kiválasztása után, hogy az alapértelmezett legyen az első megnyitáskor.

Többsoros naplózás

Ha engedélyezve van a többsoros naplózás, a korábban felosztott tárolónaplók össze vannak fűzve, és egyetlen bejegyzésként lesznek elküldve a ContainerLogV2 táblába. Engedélyezze a többsoros naplózást a ConfigMap használatával a Container Insights adatgyűjtésének konfigurálása a ConfigMap használatával című cikkben leírtak szerint.

Feljegyzés

A konfigurációs térkép mostantól tartalmaz egy nyelvspecifikációs beállítást, amely lehetővé teszi, hogy csak azokat a nyelveket válassza ki, amelyek érdeklik. Ez a funkció a konfigurációtérkép stacktrace_languages lehetőségének nyelveinek szerkesztésével engedélyezhető.

Korlátozások

  • A többsoros naplózás csak a Java, a Python, a .NET és a Go használatával varrja össze a kivételverem-nyomkövetéseket a tárolókból. Más többsoros naplóbejegyzések, beleértve az egyéni kivételeket és az tetszőleges naplóüzeneteket, nincsenek összefűzve.
  • A többsoros naplózás nem támogatott a Python-kivételverem-nyomkövetések esetében, ha részletes hibakeresési helyek vannak a nyomkövetésekben. A többsoros naplózás működéséhez le kell tiltania ezt a funkciót a Python dokumentációjában leírtak szerint.
  • Ha a naplósor mérete meghaladja a 16 KB-ot, a tároló futtatókörnyezete alapértelmezés szerint nem csonkolja, és a naplósor legfeljebb 64 KB-ig lesz támogatott.

Példák

A Go exception stack trace több soros naplózása ki van kapcsolva

Képernyőkép a többsoros naplózás letiltásról.

A Go hibakivétel veremnyomvonal többvonalas naplózás engedélyezve

Képernyőkép, amely a többsoros engedélyezést mutatja.

A Java verem nyomkövetésének többsoros naplózása engedélyezve van

Képernyőkép a Java többsoros engedélyezéséről.

A Python stack nyomkövetési többsoros naplózása engedélyezve van

Képernyőkép, amely bemutatja a Python többsoros funkciójának engedélyezését.

Következő lépések

  • Konfigurálja az Alapszintű naplókat a ContainerLogv2-hez.
  • Megtudhatja, hogyan kérdezhet le adatokat a ContainerLogV2-ből