Schemat dziennika usługi Container Insights
Usługa Container Insights przechowuje dane dziennika, które zbiera w tabeli o nazwie ContainerLogV2 w obszarze roboczym usługi Log Analytics. W tym artykule opisano schemat tej tabeli i opcji konfiguracji. Porównuje również tę tabelę ze starszą tabelą ContainerLog i zawiera szczegółowe informacje dotyczące migracji z niej.
Porównanie tabel
ContainerLogV2 to domyślny schemat interfejsu wiersza polecenia w wersji 2.54.0 i nowszej. Jest to domyślna tabela dla klientów, którzy dołączają usługę Container Insights przy użyciu uwierzytelniania tożsamości zarządzanej. KontenerLogV2 można jawnie włączyć za pomocą interfejsu wiersza polecenia w wersji 2.51.0 lub nowszej przy użyciu ustawień zbierania danych.
Ważne
Obsługa tabeli ContainerLog zostanie wycofana 30 września 2026 r.
W poniższej tabeli przedstawiono najważniejsze różnice między używaniem schematu ContainerLogV2 i ContainerLog.
Różnice między funkcjami | ContainerLog | ContainerLogV2 |
---|---|---|
Schemat | Szczegółowe informacje na stronie ContainerLog. | Szczegóły na stronie ContainerLogV2. Dodatkowe kolumny to: - ContainerName - PodName - PodNamespace - LogLevel 1- KubernetesMetadata 2 |
Wprowadzanie | Można konfigurować tylko za pomocą narzędzia ConfigMap. | Konfigurowalne za pomocą narzędzia ConfigMap i DCR. 3 |
Cennik | Tylko zgodne z pełnowartościowymi dziennikami analitycznymi. | Obsługuje warstwę dzienników podstawowych o niskich kosztach oprócz dzienników analitycznych. |
Wykonywanie zapytania | Wymaga wielu operacji sprzężenia z tabelami spisu dla standardowych zapytań. | Zawiera dodatkowe metadane zasobnika i kontenera, aby zmniejszyć złożoność zapytań i operacje łączenia. |
Wiele wierszy | Nieobsługiwane wpisy wielowierszowe są podzielone na wiele wierszy. | Obsługa rejestrowania wielowierszowego w celu umożliwienia skonsolidowanych, pojedynczych wpisów dla danych wyjściowych wielowierszowych. |
1 Jeśli LogMessage
jest prawidłowy kod JSON i ma klucz o nazwie level
, zostanie użyta jego wartość. W przeciwnym razie dopasowywanie słów kluczowych opartych na wyrażeniach regularnych jest używane do wnioskowania LogLevel
z elementu LogMessage
. To wnioskowanie może spowodować błędną klasyfikację. LogLevel
to pole ciągu z wartością kondycji, taką jak CRITICAL
, ERROR
, WARNING
, INFO
, DEBUG
, TRACE
lub UNKNOWN
.
2 KubernetesMetadata
to opcjonalna kolumna, która jest włączona z metadanymi platformy Kubernetes. Wartość tego pola to JSON z polami podLabels
, , podAnnotations
, podUid
Image
, ImageTag
, i Image repo
.
3 Konfiguracja kontrolera domeny wymaga uwierzytelniania tożsamości zarządzanej.
Uwaga
Eksportowanie do centrum zdarzeń i konta magazynu nie jest obsługiwane, jeśli dane przychodzące LogMessage
nie są prawidłowe w formacie JSON. Aby uzyskać najlepszą wydajność, emituj dzienniki kontenerów w formacie JSON.
Włączanie schematu ContainerLogV2
Włącz schemat ContainerLogV2 dla klastra przy użyciu reguły zbierania danych klastra (DCR) lub ConfigMap. Jeśli oba ustawienia są włączone, pierwszeństwo ma ConfigMap. Tabela ContainerLog
jest używana tylko wtedy, gdy zarówno DCR, jak i ConfigMap są jawnie wyłączone.
Przed włączeniem schematu ContainerLogsV2 należy ocenić, czy istnieją reguły alertów, które opierają się na tabeli ContainerLog . Aby korzystać z nowej tabeli, należy zaktualizować wszystkie takie alerty. Uruchom następujące zapytanie usługi Azure Resource Graph, aby wyszukać reguły alertów odwołujące się do ContainerLog
tabeli.
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
Filtrowanie metadanych i dzienników platformy Kubernetes
Filtrowanie metadanych i dzienników kubernetes rozszerza schemat ContainerLogsV2 z dodatkowymi metadanymi kubernetes. Funkcja filtrowania dzienników zapewnia funkcje filtrowania zarówno dla kontenerów obciążeń, jak i platform. Te funkcje zapewniają bogatszy kontekst i lepszy wgląd w obciążenia.
Funkcje
Rozszerzony schemat ContainerLogV2 Po włączeniu metadanych dzienników kubernetes dodaje kolumnę o
ContainerLogV2
nazwieKubernetesMetadata
, która rozszerza rozwiązywanie problemów z prostymi zapytaniami dzienników i eliminuje potrzebę łączenia z innymi tabelami. Pola w tej kolumnie obejmują:PodLabels
, ,PodAnnotations
,Image
PodUid
,ImageID
, ,ImageRepo
.ImageTag
Te pola rozszerzają środowisko rozwiązywania problemów przy użyciu zapytań dzienników bez konieczności łączenia z innymi tabelami. Zobacz poniżej, aby uzyskać szczegółowe informacje na temat włączania funkcji metadanych platformy Kubernetes.Poziom dziennika Ta funkcja dodaje kolumnę
LogLevel
do elementu ContainerLogV2 z możliwymi wartościami krytycznymi, błędami, ostrzeżeniem, informacjami, debugowaniem, śledzeniem lub nieznanym. Pomaga to ocenić kondycję aplikacji na podstawie poziomu ważności. Dodanie pulpitu nawigacyjnego narzędzia Grafana pozwala wizualizować trendy na poziomie dziennika w czasie i szybko wskazać zasoby, których dotyczy problem.Pulpit nawigacyjny narzędzia Grafana do wizualizacji Pulpit nawigacyjny narzędzia Grafana udostępnia wizualizację na podstawie kolorów poziomu dziennika, a także zapewnia szczegółowe informacje na temat woluminu dziennika, szybkości dzienników, rekordów dzienników, dzienników. Możesz uzyskać analizę czasową, dynamiczny wgląd w trendy na poziomie dziennika w czasie i kluczowe monitorowanie w czasie rzeczywistym. Pulpit nawigacyjny zawiera również szczegółowy podział według komputerów, zasobników i kontenerów, co umożliwia szczegółową analizę i określenie rozwiązywania problemów. Zobacz poniżej, aby uzyskać szczegółowe informacje na temat instalowania pulpitu nawigacyjnego narzędzia Grafana.
Filtrowanie dzienników na podstawie adnotacji dla obciążeń Wydajne filtrowanie dzienników za pomocą adnotacji zasobników. Dzięki temu można skupić się na odpowiednich informacjach bez przesiewania szumu. Filtrowanie oparte na adnotacjach umożliwia wykluczanie zbierania dzienników dla niektórych zasobników i kontenerów przez dodawanie adnotacji do zasobnika, co mogłoby znacznie zmniejszyć koszt analizy dzienników. Aby uzyskać szczegółowe informacje na temat konfigurowania filtrowania opartego na adnotacjach, zobacz Filtrowanie dzienników oparte na adnotacjach.
Filtrowanie dzienników oparte na programie ConfigMap dla dzienników platformy (system Kubernetes Namespaces) są emitowane przez kontenery w systemach (lub podobnych ograniczonych) przestrzeniach nazw. Domyślnie wszystkie dzienniki kontenerów z przestrzeni nazw systemu są wykluczone, aby zminimalizować koszty danych w obszarze roboczym usługi Log Analytics. Jednak w konkretnych scenariuszach rozwiązywania problemów dzienniki kontenera kontenera systemu odgrywają kluczową rolę. Jednym z przykładów
coredns
jest kontener wkube-system
przestrzeni nazw.
Włączanie metadanych platformy Kubernetes
Ważne
Zbieranie metadanych platformy Kubernetes wymaga uwierzytelniania tożsamości zarządzanej i konteneraLogsV2
Włącz metadane platformy Kubernetes przy użyciu narzędzia ConfigMap z następującymi ustawieniami. Wszystkie pola metadanych są zbierane domyślnie po włączeniu metadata_collection
. Usuń komentarz include_fields
, aby określić poszczególne pola do zebrania.
[log_collection_settings.metadata_collection]
enabled = true
include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]
Po kilku minutach kolumna KubernetesMetadata
powinna zostać dołączona do wszystkich zapytań dziennika dotyczących ContainerLogV2
tabeli, jak pokazano poniżej.
Instalowanie pulpitu nawigacyjnego narzędzia Grafana
Ważne
Jeśli włączono narzędzie Grafana, korzystając ze wskazówek w artykule Włączanie monitorowania dla klastrów Kubernetes, wystąpienie narzędzia Grafana powinno już mieć dostęp do obszaru roboczego usługi Azure Monitor dla metryk rozwiązania Prometheus. Pulpit nawigacyjny metadanych dzienników platformy Kubernetes wymaga również dostępu do obszaru roboczego usługi Log Analytics, który zawiera dane dziennika. Zobacz Jak zmodyfikować uprawnienia dostępu do usługi Azure Monitor , aby uzyskać wskazówki dotyczące udzielania wystąpienia narzędzia Grafana roli Czytelnik monitorowania dla obszaru roboczego usługi Log Analytics.
Zaimportuj pulpit nawigacyjny z galerii Grafana na pulpicie nawigacyjnym ContainerLogV2. Następnie możesz otworzyć pulpit nawigacyjny i wybrać wartości źródła danych, subskrypcji, grupy zasobów, klastra, przestrzeni nazw i etykiet.
Uwaga
Podczas początkowego ładowania pulpitu nawigacyjnego narzędzia Grafana mogą pojawić się błędy z powodu nie zaznaczonych zmiennych. Aby zapobiec temu cyklicznemu, zapisz pulpit nawigacyjny po wybraniu zestawu zmiennych, aby stał się domyślnym ustawieniem pierwszego otwarcia.
Rejestrowanie wielowierszowe
Po włączeniu rejestrowania wielowierszowego wcześniej podzielone dzienniki kontenerów są łączone i wysyłane jako pojedyncze wpisy do tabeli ContainerLogV2. Jeśli linia dziennika szwów jest większa niż 64 KB, zostanie obcięta z powodu limitów obszaru roboczego usługi Log Analytics. Ta funkcja obsługuje również ślady stosu .NET, Go, Python i Java, które są wyświetlane jako pojedyncze wpisy w tabeli ContainerLogV2. Włącz rejestrowanie wielowierszowe za pomocą narzędzia ConfigMap zgodnie z opisem w temacie Konfigurowanie zbierania danych w usłudze Container Insights przy użyciu narzędzia ConfigMap.
Uwaga
Mapa konfiguracji zawiera teraz opcję specyfikacji języka, w której klienci mogą wybrać tylko języki, które cię interesują. Tę funkcję można włączyć, edytując języki w opcji stacktrace_languages na mapie konfiguracji.
Na poniższych zrzutach ekranu przedstawiono rejestrowanie wielowierszowe dla śledzenia stosu wyjątków języka Go:
Rejestrowanie wielowierszowe jest wyłączone
Włączono rejestrowanie wielowierszowe
Ślad stosu języka Java
Ślad stosu języka Python
Następne kroki
- Skonfiguruj podstawowe dzienniki dla konteneraLogv2.
- Dowiedz się, jak wykonywać zapytania o dane z konteneraLogV2