Konfigurowanie zbierania danych i optymalizacji kosztów w usłudze Container Insights przy użyciu reguły zbierania danych

W tym artykule opisano sposób konfigurowania zbierania danych w usłudze Container Insights przy użyciu reguły zbierania danych (DCR) dla klastra Kubernetes. Obejmuje to wstępne konfiguracje optymalizacji kosztów. Kontroler domeny jest tworzony podczas dołączania klastra do usługi Container Insights. Ten kontroler domeny jest używany przez agenta konteneryzowanego do definiowania zbierania danych dla klastra.

Kontroler domeny jest używany głównie do konfigurowania zbierania danych dotyczących wydajności i spisu oraz konfigurowania optymalizacji kosztów.

Konkretna konfiguracja, którą można wykonać za pomocą kontrolera DCR, obejmuje:

  • Włącz/wyłącz filtrowanie kolekcji i przestrzeni nazw pod kątem wydajności i danych spisu.
  • Definiowanie interwału zbierania danych dotyczących wydajności i spisu
  • Włączanie/wyłączanie kolekcji syslog
  • Wybieranie schematu dziennika

Ważne

Pełna konfiguracja zbierania danych w usłudze Container Insights może wymagać edytowania zarówno kontrolera domeny, jak i obiektu ConfigMap dla klastra, ponieważ każda metoda umożliwia konfigurację innego zestawu ustawień.

Zobacz Konfigurowanie zbierania danych w usłudze Container Insights przy użyciu narzędzia ConfigMap , aby uzyskać listę ustawień i proces konfigurowania zbierania danych przy użyciu narzędzia ConfigMap.

Wymagania wstępne

Konfigurowanie zbierania danych

Kontroler domeny tworzony podczas włączania usługi Container Insights ma nazwę MSCI-cluster-region-cluster-name><<>. Możesz je wyświetlić w witrynie Azure Portal, wybierając opcję Reguły zbierania danych w menu Monitorowanie w witrynie Azure Portal. Zamiast bezpośrednio modyfikować kontroler domeny, należy użyć jednej z metod opisanych poniżej w celu skonfigurowania zbierania danych. Zobacz Parametry zbierania danych, aby uzyskać szczegółowe informacje o różnych dostępnych ustawieniach używanych przez każdą metodę.

Ostrzeżenie

Domyślne środowisko usługi Container Insights zależy od wszystkich istniejących strumieni danych. Usunięcie co najmniej jednego strumienia domyślnego sprawia, że środowisko usługi Container Insights jest niedostępne i musisz użyć innych narzędzi, takich jak pulpity nawigacyjne narzędzia Grafana i zapytania dzienników w celu analizowania zebranych danych.

Możesz użyć witryny Azure Portal, aby włączyć optymalizację kosztów w istniejącym klastrze po włączeniu usługi Container Insights lub włączyć szczegółowe informacje o kontenerze w klastrze wraz z optymalizacją kosztów.

  1. Wybierz klaster w witrynie Azure Portal.

  2. Wybierz opcję Szczegółowe informacje w sekcji Monitorowanie w menu.

  3. Jeśli usługa Container Insights została już włączona w klastrze, wybierz przycisk Monitorowanie Ustawienia. 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.

    Zrzut ekranu przedstawiający klaster usługi AKS z przyciskiem ustawień monitorowania.

  4. 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.

  5. Wybierz jeden z ustawień wstępnych kosztów opisanych w temacie Ustawienia wstępne kosztów.

    Zrzut ekranu przedstawiający opcje dołączania.

  6. Jeśli chcesz dostosować ustawienia, kliknij pozycję Edytuj ustawienia kolekcji. Aby uzyskać szczegółowe informacje na temat poszczególnych ustawień, zobacz Parametry zbierania danych. Aby uzyskać informacje o zebranych danych, zobacz Zebrane dane poniżej.

    Zrzut ekranu przedstawiający opcje ustawień kolekcji.

  7. Kliknij przycisk Konfiguruj, aby zapisać ustawienia.

Ustawienia wstępne kosztów

Jeśli używasz witryny Azure Portal do konfigurowania optymalizacji kosztów, możesz wybrać elementy z następujących wstępnie ustawionych konfiguracji. Możesz wybrać jedną z tych opcji lub podać własne dostosowane ustawienia. Domyślnie usługa Container Insights używa ustawień wstępnych w warstwie Standardowa .

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
KubePodInventory

Zebrane dane

Opcja Zebrane dane umożliwia wybranie tabel wypełnionych dla klastra. Jest to odpowiednik parametru podczas wykonywania konfiguracji za pomocą interfejsu streams wiersza polecenia lub usługi ARM. Jeśli wybierzesz dowolną opcję inną niż Wszystkie (wartość domyślna), środowisko usługi Container Insights stanie się niedostępne i musisz użyć narzędzia Grafana lub innych metod do analizowania zebranych danych.

Zrzut ekranu przedstawiający zebrane opcje danych.

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, Szczegółowe informacje Metrics
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 Szczegółowe informacje Metrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
Trwałe woluminy Szczegółowe informacje Metrics, KubePVInventory

Parametry zbierania danych

W poniższej tabeli opisano obsługiwane ustawienia zbierania danych i nazwę używaną dla poszczególnych opcji dołączania.

Nazwa/nazwisko opis
Częstotliwość zbierania
CLI: interval
RAMIĘ: dataCollectionInterval
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. Jeśli wartość znajduje się poza dozwolonym zakresem, wartość domyślna to 1 m.
Filtrowanie przestrzeni nazw
CLI: namespaceFilteringMode
RAMIĘ: namespaceFilteringModeForDataCollection
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 .
Wyłączone: ignoruje wszystkie wybory przestrzeni nazw i zbiera dane we wszystkich przestrzeniach nazw.
Filtrowanie przestrzeni nazw
CLI: namespaces
RAMIĘ: namespacesForDataCollection
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. Po ustawieniu Wyłączone agent zbiera dane ze wszystkich przestrzeni nazw, w tym kube-system i ustawienie domyślne. Nieprawidłowe i nierozpoznane przestrzenie nazw są ignorowane.
Włączanie konteneraLogV2
CLI: enableContainerLogV2
RAMIĘ: enableContainerLogV2
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.
Zebrane dane
CLI: streams
RAMIĘ: streams
Tablica strumieni tabel szczegółowych informacji o kontenerach. Zobacz obsługiwane strumienie powyżej do mapowania tabeli.

Odpowiednie tabele i metryki

Ustawienia częstotliwości kolekcji i filtrowania przestrzeni nazw 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.

Uwaga

Ta funkcja konfiguruje ustawienia dla wszystkich tabel usługi Container Insights z wyjątkiem containerLog i ContainerLogV2. Aby skonfigurować ustawienia dla tych tabel, zaktualizuj obiekt ConfigMap opisany w ustawieniach zbierania danych agenta.

Nazwa tabeli Interwał? Obszary 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ł? Obszary nazw? Uwagi
Szczegółowe informacje.container/nodes Tak Nie. Węzeł nie jest zasobem o zakresie przestrzeni nazw
Szczegółowe informacje.container/zasobniki Tak Tak
Szczegółowe informacje.container/containers Tak Tak
Szczegółowe informacje.container/persistentvolumes Tak Tak

Wartości strumienia

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-ContainerNodeInventory ContainerNodeInventory
Microsoft-Szczegółowe informacje Metrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf

Wpływ na wizualizacje i alerty

Jeśli obecnie używasz powyższych tabel dla innych niestandardowych alertów lub wykresów, modyfikowanie ustawień zbierania danych może obniżyć te środowiska. Jeśli wykluczasz przestrzenie nazw lub zmniejszasz częstotliwość zbierania danych, przejrzyj istniejące alerty, pulpity nawigacyjne i skoroszyty przy użyciu tych danych.

Aby przeprowadzić skanowanie pod kątem alertów odwołujących się do tych tabel, uruchom następujące zapytanie usługi Azure Resource Graph:

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 "Perf" or properties  contains "InsightsMetrics" or properties  contains "ContainerInventory" or properties  contains "ContainerNodeInventory" or properties  contains "KubeNodeInventory" or properties  contains"KubePodInventory" or properties  contains "KubePVInventory" or properties  contains "KubeServices" or properties  contains "KubeEvents" 
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Następne kroki