Konfigurowanie zbierania dzienników w usłudze Container Insights
Ten artykuł zawiera szczegółowe informacje na temat konfigurowania zbierania danych w usłudze Container Insights dla klastra Kubernetes po dołączeniu go. Aby uzyskać wskazówki dotyczące włączania szczegółowych informacji o kontenerze w klastrze, zobacz Włączanie monitorowania klastrów Kubernetes.
Metody konfiguracji
Istnieją dwie metody służące do konfigurowania i filtrowania zbieranych danych w usłudze Container Insights. W zależności od ustawienia może być możliwe wybranie między dwiema metodami lub może być wymagane użycie jednej lub drugiej. Dwie metody zostały opisane w poniższej tabeli ze szczegółowymi informacjami w poniższych sekcjach.
Metoda | opis |
---|---|
Reguła zbierania danych (DCR) | Reguły zbierania danych to zestawy instrukcji pomocniczych zbierania danych przy użyciu potoku usługi Azure Monitor. Kontroler domeny jest tworzony podczas włączania szczegółowych informacji o kontenerze i można zmodyfikować ustawienia w tym kontrolerze domeny przy użyciu witryny Azure Portal lub innych metod. |
ConfigMap | ConfigMaps to mechanizm Kubernetes, który umożliwia przechowywanie danych nieufnych, takich jak plik konfiguracji lub zmienne środowiskowe. Usługa Container Insights wyszukuje element ConfigMap w każdym klastrze z określonymi ustawieniami, które definiują dane, które powinny być zbierane. |
Konfigurowanie zbierania danych przy użyciu usługi DCR
Kontroler domeny utworzony przez usługę Container Insights ma nazwę MSCI-cluster-region-cluster-name><<>. Możesz wyświetlić tę usługę DCR wraz z innymi osobami w ramach subskrypcji i edytować ją przy użyciu metod opisanych w temacie Tworzenie i edytowanie reguł zbierania danych (DCR) w usłudze Azure Monitor. Chociaż można bezpośrednio zmodyfikować kontroler domeny dla określonych dostosowań, można wykonać większość wymaganych konfiguracji przy użyciu metod opisanych poniżej. Zobacz Przekształcenia danych w usłudze Container Insights , aby uzyskać szczegółowe informacje na temat bezpośredniej edycji kontrolera domeny, aby uzyskać bardziej zaawansowane konfiguracje.
Ważne
Klastry usługi AKS muszą używać tożsamości zarządzanej przypisanej przez system lub przypisanej przez użytkownika. Jeśli klaster używa jednostki usługi, należy zaktualizować klaster, aby używał tożsamości zarządzanej przypisanej przez system lub tożsamości zarządzanej przypisanej przez użytkownika.
Konfigurowanie kontrolera domeny za pomocą witryny Azure Portal
Korzystając z witryny Azure Portal, możesz wybrać spośród wielu wstępnie ustawionych konfiguracji zbierania danych w usłudze Container Insights. Te konfiguracje obejmują różne zestawy tabel i częstotliwości kolekcji w zależności od konkretnych priorytetów. Możesz również dostosować ustawienia, aby zbierać tylko wymagane dane. Możesz użyć witryny Azure Portal, aby dostosować konfigurację istniejącego klastra po włączeniu usługi Container Insights lub wykonać tę konfigurację po włączeniu usługi Container Insights w klastrze.
Wybierz klaster w witrynie Azure Portal.
Wybierz opcję Szczegółowe informacje w sekcji Monitorowanie w menu.
Jeśli usługa Container Insights została już włączona w klastrze, wybierz przycisk Ustawienia monitorowania. Jeśli nie, wybierz pozycję Konfiguruj usługę Azure Monitor i zobacz Włączanie monitorowania w klastrze Kubernetes za pomocą usługi Azure Monitor , aby uzyskać szczegółowe informacje na temat włączania monitorowania.
W przypadku usług AKS i Kubernetes z obsługą usługi Arc wybierz pozycję Użyj tożsamości zarządzanej, jeśli klaster nie został jeszcze zmigrowany do uwierzytelniania tożsamości zarządzanej.
Wybierz jedną z ustawień wstępnych kosztów.
Ustawienie wstępne kosztów Częstotliwość zbierania Filtry przestrzeni nazw Kolekcja dziennika systemowego Zebrane dane Standardowa 1 m Brak Nie włączono Wszystkie standardowe tabele szczegółowych informacji o kontenerach Zoptymalizowane pod kątem kosztów 5 m Wyklucza kube-system, gatekeeper-system, azure-arc Nie włączono Wszystkie standardowe tabele szczegółowych informacji o kontenerach Dziennik systemu 1 m Brak Domyślnie włączone Wszystkie standardowe tabele szczegółowych informacji o kontenerach Dzienniki i zdarzenia 1 m Brak Nie włączono ContainerLog/ContainerLogV2
KubeEvents
KubePodInventoryJeśli chcesz dostosować ustawienia, kliknij pozycję Edytuj ustawienia kolekcji.
Nazwa/nazwisko opis Częstotliwość zbierania Określa, jak często agent zbiera dane. Prawidłowe wartości to 1m – 30 m w 1m interwałach Wartość domyślna to 1m. Filtrowanie przestrzeni nazw Wyłączone: zbiera dane we wszystkich przestrzeniach nazw.
Uwzględnij: zbiera tylko dane z wartości w polu przestrzeni nazw .
Wyklucz: zbiera dane ze wszystkich przestrzeni nazw z wyjątkiem wartości w polu przestrzeni nazw .
Tablica rozdzielonych przecinkami przestrzeni nazw kubernetes do zbierania spisu i danych wydajności na podstawie przestrzeni nazwFilteringMode. Na przykład przestrzenie nazw = ["kube-system", "default"] z ustawieniem Dołączanie zbiera tylko te dwie przestrzenie nazw. Przy użyciu ustawienia Wyklucz agent zbiera dane ze wszystkich innych przestrzeni nazw z wyjątkiem kube-system i domyślnego.Zebrane dane Definiuje tabele usługi Container Insights do zebrania. Poniżej przedstawiono opis każdego grupowania. Włączanie konteneraLogV2 Flaga logiczna umożliwiająca włączenie schematu ContainerLogV2. Jeśli ustawiono wartość true, dzienniki stdout/stderr są pozyskiwane do tabeli ContainerLogV2 . Jeśli nie, dzienniki kontenera są pozyskiwane do tabeli ContainerLog , chyba że określono inaczej w ConfigMap. Podczas określania poszczególnych strumieni należy uwzględnić odpowiednią tabelę dla konteneraLog lub ContainerLogV2. Włączanie zbierania dziennika systemowego Włącza zbieranie dzienników syslog z klastra. Opcja Zebrane dane umożliwia wybranie tabel wypełnionych dla klastra. Tabele są pogrupowane według najbardziej typowych scenariuszy. Aby określić poszczególne tabele, należy zmodyfikować kontroler domeny przy użyciu innej metody.
Grupowanie Tabele Uwagi Wszystkie (ustawienie domyślne) Wszystkie standardowe tabele szczegółowych informacji o kontenerach Wymagane do włączenia domyślnych wizualizacji usługi Container Insights Wydajność Perf, InsightsMetrics Dzienniki i zdarzenia ContainerLog lub ContainerLogV2, KubeEvents, KubePodInventory Zalecane, jeśli włączono zarządzane metryki rozwiązania Prometheus Obciążenia, wdrożenia i hpa InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices Trwałe woluminy InsightsMetrics, KubePVInventory Kliknij przycisk Konfiguruj, aby zapisać ustawienia.
Odpowiednie tabele i metryki dla kontrolera domeny
Ustawienia częstotliwości kolekcji i filtrowania przestrzeni nazw w kontrolerze domeny nie mają zastosowania do wszystkich danych usługi Container Insights. W poniższych tabelach wymieniono tabele w obszarze roboczym usługi Log Analytics używanym przez szczegółowe informacje o kontenerze i zbierane metryki wraz z ustawieniami, które mają zastosowanie do każdego z nich.
Nazwa tabeli | Interwał? | Przestrzenie nazw? | Uwagi |
---|---|---|---|
ContainerInventory | Tak | Tak | |
ContainerNodeInventory | Tak | Nie. | Ustawienie zbierania danych dla przestrzeni nazw nie ma zastosowania, ponieważ węzeł Kubernetes nie jest zasobem o określonym zakresie przestrzeni nazw |
KubeNodeInventory | Tak | Nie. | Ustawienie zbierania danych dla przestrzeni nazw nie ma zastosowania w węźle Kubernetes nie jest zasobem o zakresie przestrzeni nazw |
KubePodInventory | Tak | Tak | |
KubePVInventory | Tak | Tak | |
KubeServices | Tak | Tak | |
KubeEvents | Nie. | Tak | Ustawienie zbierania danych dla interwału nie ma zastosowania do zdarzeń platformy Kubernetes |
Perf | Tak | Tak | Ustawienie zbierania danych dla przestrzeni nazw nie ma zastosowania do metryk związanych z węzłem Kubernetes, ponieważ węzeł Kubernetes nie jest obiektem o określonym zakresie przestrzeni nazw. |
InsightsMetrics | Tak | Tak | Ustawienia zbierania danych dotyczą tylko metryk zbierających następujące przestrzenie nazw: container.azm.ms/kubestate, container.azm.ms/pv i container.azm.ms/gpu |
Przestrzeń nazw metryki | Interwał? | Przestrzenie nazw? | Uwagi |
---|---|---|---|
Insights.container/nodes | Tak | Nie. | Węzeł nie jest zasobem o zakresie przestrzeni nazw |
Insights.container/pods | Tak | Tak | |
Insights.container/containers | Tak | Tak | |
Insights.container/persistentvolumes | Tak | Tak |
Wartości strumienia w usłudze DCR
Po określeniu tabel do zbierania przy użyciu interfejsu wiersza polecenia lub usługi ARM należy określić nazwę strumienia odpowiadającą określonej tabeli w obszarze roboczym usługi Log Analytics. W poniższej tabeli wymieniono nazwę strumienia dla każdej tabeli.
Uwaga
Jeśli znasz strukturę reguły zbierania danych, nazwy strumieni w tej tabeli są określone w sekcji Przepływy danych kontrolera domeny.
Stream | Tabela szczegółowych informacji o kontenerach |
---|---|
Microsoft-ContainerInventory | ContainerInventory |
Microsoft-ContainerLog | ContainerLog |
Microsoft-ContainerLogV2 | ContainerLogV2 |
Microsoft-ContainerLogV2-HighScale | ContainerLogV2 (tryb dużej skali)1 |
Microsoft-ContainerNodeInventory | ContainerNodeInventory |
Microsoft-InsightsMetrics | InsightsMetrics |
Microsoft-KubeEvents | KubeEvents |
Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
Microsoft-KubeNodeInventory | KubeNodeInventory |
Microsoft-KubePodInventory | KubePodInventory |
Microsoft-KubePVInventory | KubePVInventory |
Microsoft-KubeServices | KubeServices |
Microsoft-Perf | Perf |
1 Nie należy używać zarówno microsoft-ContainerLogV2, jak i Microsoft-ContainerLogV2-HighScale w tym samym kontrolerze domeny. Spowoduje to zduplikowanie danych.
Udostępnianie kontrolera domeny z wieloma klastrami
Po włączeniu usługi Container Insights w klastrze Kubernetes tworzony jest nowy kontroler domeny dla tego klastra, a kontroler domeny dla każdego klastra można modyfikować niezależnie. Jeśli masz wiele klastrów z niestandardowymi konfiguracjami monitorowania, możesz udostępnić jeden kontroler domeny z wieloma klastrami. Następnie można wprowadzić zmiany w pojedynczym kontrolerze domeny, które są automatycznie implementowane dla wszystkich skojarzonych z nim klastrów.
Kontroler domeny jest skojarzony z klastrem z regułą zbierania danych skojarzeń (DCRA). Użyj środowiska dcR w wersji zapoznawczej, aby wyświetlić i usunąć istniejące skojarzenia DCR dla każdego klastra. Następnie możesz użyć tej funkcji, aby dodać skojarzenie do pojedynczego kontrolera domeny dla wielu klastrów.
Konfigurowanie zbierania danych przy użyciu narzędzia ConfigMap
ConfigMaps to mechanizm Kubernetes, który umożliwia przechowywanie danych nieufnych, takich jak plik konfiguracji lub zmienne środowiskowe. Usługa Container Insights wyszukuje element ConfigMap w każdym klastrze z określonymi ustawieniami, które definiują dane, które powinny być zbierane.
Ważne
ConfigMap jest listą globalną i może istnieć tylko jedna mapa konfiguracji zastosowana do agenta w celu uzyskania szczegółowych informacji o kontenerze. Zastosowanie innej mapy konfiguracji spowoduje zastąpienie poprzednich ustawień kolekcji ConfigMap.
Wymagania wstępne
- Minimalna wersja agenta obsługiwana do zbierania zmiennych stdout, stderr i środowiskowych z obciążeń kontenera to ciprod06142019 lub nowszy.
Konfigurowanie i wdrażanie narzędzia ConfigMap
Poniższa procedura umożliwia skonfigurowanie i wdrożenie pliku konfiguracji ConfigMap w klastrze:
Jeśli nie masz jeszcze obiektu ConfigMap for Container Insights, pobierz plik ConfigMap YAML szablonu i otwórz go w edytorze.
Edytuj plik YAML ConfigMap przy użyciu dostosowań. Szablon zawiera wszystkie prawidłowe ustawienia z opisami. Aby włączyć ustawienie, usuń znak komentarza (#) i ustaw jego wartość.
Utwórz ConfigMap, uruchamiając następujące polecenie kubectl:
kubectl config set-context <cluster-name> kubectl apply -f <configmap_yaml_file.yaml> # Example: kubectl config set-context my-cluster kubectl apply -f container-azm-ms-agentconfig.yaml
Przed rozpoczęciem efektu zmiana konfiguracji może potrwać kilka minut. Następnie wszystkie zasobniki agenta usługi Azure Monitor w klastrze zostaną uruchomione ponownie. Ponowne uruchomienie to ponowne uruchomienie wszystkich zasobników agenta usługi Azure Monitor, więc nie wszystkie z nich są uruchamiane ponownie w tym samym czasie. Po zakończeniu ponownego uruchamiania zostanie wyświetlony komunikat podobny do następującego:
configmap "container-azm-ms-agentconfig" created`.
Weryfikowanie konfiguracji
Aby sprawdzić, czy konfiguracja została pomyślnie zastosowana do klastra, użyj następującego polecenia, aby przejrzeć dzienniki z zasobnika agenta.
kubectl logs ama-logs-fdf58 -n kube-system -c ama-logs
Jeśli występują błędy konfiguracji z zasobników agenta usługi Azure Monitor, dane wyjściowe będą wyświetlać błędy podobne do następujących:
***************Start Config Processing********************
config::unsupported/missing config schema version - 'v21' , using defaults
Użyj następujących opcji, aby wykonać więcej rozwiązywania problemów ze zmianami konfiguracji:
Użyj tego samego
kubectl logs
polecenia z zasobnika agenta.Przejrzyj dzienniki na żywo pod kątem błędów podobnych do następujących:
config::error::Exception while parsing config map for log collection/env variable settings: \nparse error on value \"$\" ($end), using defaults, please check config map for errors
Dane są wysyłane do
KubeMonAgentEvents
tabeli w obszarze roboczym usługi Log Analytics co godzinę z ważnością błędu w przypadku błędów konfiguracji. Jeśli nie ma żadnych błędów, wpis w tabeli będzie zawierać dane z informacjami o ważności, które nie zgłaszają żadnych błędów. KolumnaTags
zawiera więcej informacji o zasobniku i identyfikatorze kontenera, na którym wystąpił błąd, a także o pierwszym wystąpieniu, ostatnim wystąpieniu i liczbie w ciągu ostatniej godziny.
Weryfikowanie wersji schematu
Obsługiwane wersje schematu konfiguracji są dostępne jako adnotacja zasobnika (schema-versions) w zasobniku agenta usługi Azure Monitor. Można je zobaczyć za pomocą następującego polecenia kubectl.
kubectl describe pod ama-logs-fdf58 -n=kube-system.
Ustawienia ConfigMap
W poniższej tabeli opisano ustawienia, które można skonfigurować w celu kontrolowania zbierania danych za pomocą narzędzia ConfigMap.
Ustawienie | Typ danych | Wartość | Opis |
---|---|---|---|
schema-version |
Ciąg (z uwzględnieniem wielkości liter) | v1 | Używany przez agenta podczas analizowania tej ConfigMap. Obecnie obsługiwana wersja schematu to wersja 1. Modyfikowanie tej wartości nie jest obsługiwane i zostanie odrzucone po ocenie obiektu ConfigMap. |
config-version |
String | Umożliwia śledzenie wersji tego pliku konfiguracji w systemie/repozytorium kontroli źródła. Maksymalna dozwolona liczba znaków to 10, a wszystkie inne znaki są obcinane. | |
[log_collection_settings] | |||
[stdout] enabled |
Wartość logiczna | prawda fałsz |
Określa, czy zbieranie dzienników kontenerów stdout jest włączone. Jeśli dla true kolekcji dzienników stdout nie zostaną wykluczone żadne przestrzenie nazw, dzienniki stdout będą zbierane ze wszystkich kontenerów we wszystkich zasobnikach i węzłach w klastrze. Jeśli nie zostanie określony w ConfigMap, wartość domyślna to true . |
[stdout] exclude_namespaces |
String | Tablica rozdzielona przecinkami | Tablica przestrzeni nazw kubernetes, dla których dzienniki stdout nie zostaną zebrane. To ustawienie jest skuteczne tylko wtedy, gdy enabled jest ustawione na true . Jeśli nie określono wartości w ConfigMap, wartość domyślna to["kube-system","gatekeeper-system"] . |
[stderr] enabled |
Wartość logiczna | prawda fałsz |
Określa, czy zbieranie dzienników kontenerów stderr jest włączone. Jeśli dla kolekcji dzienników stderr nie true zostaną wykluczone żadne przestrzenie nazw, dzienniki stderr będą zbierane ze wszystkich kontenerów we wszystkich zasobnikach i węzłach w klastrze. Jeśli nie zostanie określony w ConfigMap, wartość domyślna to true . |
[stderr] exclude_namespaces |
String | Tablica rozdzielona przecinkami | Tablica przestrzeni nazw platformy Kubernetes, dla których nie będą zbierane dzienniki stderr. To ustawienie jest skuteczne tylko wtedy, gdy enabled jest ustawione na true . Jeśli nie określono wartości w ConfigMap, wartość domyślna to["kube-system","gatekeeper-system"] . |
[env_var] enabled |
Wartość logiczna | prawda fałsz |
Steruje kolekcją zmiennych środowiskowych we wszystkich zasobnikach i węzłach w klastrze. Jeśli nie zostanie określony w ConfigMap, wartość domyślna to true . |
[enrich_container_logs] enabled |
Wartość logiczna | prawda fałsz |
Steruje wzbogacaniem dziennika kontenera w Name celu wypełnienia wartości właściwości i Image dla każdego rekordu dziennika zapisanego w tabeli ContainerLog dla wszystkich dzienników kontenera w klastrze. Jeśli nie zostanie określony w ConfigMap, wartość domyślna to false . |
[collect_all_kube_events] enabled |
Wartość logiczna | prawda fałsz |
Określa, czy są zbierane zdarzenia kube wszystkich typów. Domyślnie zdarzenia kube o typie Normal nie są zbierane. Gdy to ustawienie to true , zdarzenia normalne nie są już filtrowane, a wszystkie zdarzenia są zbierane. Jeśli nie zostanie określony w ConfigMap, wartość domyślna to false . |
[schema] containerlog_schema_version |
Ciąg (z uwzględnieniem wielkości liter) | v2 v1 |
Ustawia format pozyskiwania dzienników. Jeśli v2 jest używana tabela ContainerLogV2 . Jeśli v1 jest używana tabela ContainerLog (ta tabela jest przestarzała). W przypadku klastrów włączających szczegółowe informacje o kontenerze przy użyciu interfejsu wiersza polecenia platformy Azure w wersji 2.54.0 lub nowszej domyślnym ustawieniem jest v2 . Aby uzyskać szczegółowe informacje, zobacz Schemat dziennika usługi Container Insights. |
[enable_multiline_logs] enabled |
Wartość logiczna | prawda fałsz |
Określa, czy dzienniki kontenerów wielowierszowych są włączone. Aby uzyskać szczegółowe informacje, zobacz Rejestrowanie wielowierszowe w usłudze Container Insights . Jeśli nie zostanie określony w ConfigMap, wartość domyślna to false . Wymaga to ustawienia schema o wartości v2 . |
[metadata_collection] enabled |
Wartość logiczna | prawda fałsz |
Określa, czy metadane są zbierane w KubernetesMetadata kolumnie ContainerLogV2 tabeli. |
[metadata_collection] include_fields |
String | Tablica rozdzielona przecinkami | Lista pól metadanych do uwzględnienia. Jeśli ustawienie nie jest używane, wszystkie pola są zbierane. Prawidłowe wartości to ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"] |
[metric_collection_settings] | |||
[collect_kube_system_pv_metrics] enabled |
Wartość logiczna | prawda fałsz |
Umożliwia zbieranie metryk użycia woluminu trwałego (PV) w przestrzeni nazw kube-system. Domyślnie metryki użycia dla woluminów trwałych z trwałymi oświadczeniami woluminów w przestrzeni nazw kube-system nie są zbierane. Gdy to ustawienie ma wartość true , zbierane są metryki użycia pv dla wszystkich przestrzeni nazw. Jeśli nie zostanie określony w ConfigMap, wartość domyślna to false . |
[agent_settings] | |||
[proxy_config] ignore_proxy_settings |
Wartość logiczna | prawda fałsz |
Gdy true ustawienia serwera proxy są ignorowane. W przypadku środowisk Kubernetes z obsługą usług AKS i Arc, jeśli klaster jest skonfigurowany z serwerem proxy przekazywania dalej, ustawienia serwera proxy są automatycznie stosowane i używane dla agenta. W przypadku niektórych konfiguracji, takich jak ampLS + serwer proxy, możesz chcieć zignorować konfigurację serwera proxy. Jeśli nie zostanie określony w ConfigMap, wartość domyślna to false . |
Następne kroki
- Aby uzyskać szczegółowe informacje na temat oszczędzania kosztów, zobacz Filtrowanie zbierania dzienników w usłudze Container Insights , aby filtrować dane, których nie potrzebujesz.