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
- Klastry usługi AKS muszą używać tożsamości zarządzanej przypisanej przez system lub użytkownika. Jeśli klaster korzysta z jednostki usługi, musisz przeprowadzić uaktualnienie do tożsamości zarządzanej.
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.
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 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.
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 jeden z ustawień wstępnych kosztów opisanych w temacie Ustawienia wstępne kosztów.
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.
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.
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