Włączanie monitorowania klastrów Kubernetes
W tym artykule opisano sposób włączania pełnego monitorowania klastrów Kubernetes przy użyciu następujących funkcji usługi Azure Monitor:
- Zarządzany prometheus dla kolekcji metryk
- Szczegółowe informacje o kontenerze na potrzeby zbierania dzienników
- Zarządzana Grafana na potrzeby wizualizacji.
Za pomocą witryny Azure Portal można jednocześnie włączyć wszystkie funkcje. Można je również włączyć indywidualnie przy użyciu interfejsu wiersza polecenia platformy Azure, szablonu usługi Azure Resource Manager, narzędzia Terraform lub usługi Azure Policy. Każda z tych metod została opisana w tym artykule.
Ważne
Klastry Kubernetes generują wiele danych dziennika, co może spowodować znaczne koszty, jeśli nie będziesz selektywnie wybierać zebranych dzienników. Przed włączeniem monitorowania klastra zapoznaj się z następującymi artykułami, aby upewnić się, że środowisko jest zoptymalizowane pod kątem kosztów i że ograniczysz zbieranie dzienników tylko do potrzebnych danych:
- Konfigurowanie zbierania danych i optymalizacji kosztów w usłudze Container Insights przy użyciu reguły zbierania danych
Szczegółowe informacje na temat dostosowywania zbierania dzienników po włączeniu monitorowania, w tym przy użyciu wstępnie ustawionych konfiguracji optymalizacji kosztów. - Najlepsze rozwiązania dotyczące monitorowania rozwiązania Kubernetes za pomocą usługi Azure Monitor
Najlepsze rozwiązania dotyczące monitorowania klastrów Kubernetes zorganizowanych przez pięć filarów platformy Azure Well-Architected Framework, w tym optymalizację kosztów. - Optymalizacja kosztów w usłudze Azure Monitor
Najlepsze rozwiązania dotyczące konfigurowania wszystkich funkcji usługi Azure Monitor w celu optymalizacji kosztów i ograniczenia ilości zbieranych danych.
Obsługiwane klastry
Ten artykuł zawiera wskazówki dotyczące dołączania dla następujących typów klastrów. Wszelkie różnice w procesie dla każdego typu są zanotowane w odpowiednich sekcjach.
Wymagania wstępne
Uprawnienia
- Do dołączania wymagane jest co najmniej dostęp współautora do klastra.
- Po włączeniu monitorowania wymagane jest wyświetlanie danych przez czytelnik monitorowania lub współautor monitorowania.
Wymagania wstępne dotyczące zarządzanego rozwiązania Prometheus
- Klaster musi używać uwierzytelniania tożsamości zarządzanej.
- Następujący dostawcy zasobów muszą być zarejestrowani w subskrypcji klastra usługi AKS i obszaru roboczego usługi Azure Monitor:
- Microsoft.ContainerService
- Microsoft.Insights
- Microsoft.AlertsManagement
- Microsoft.Monitor
- W ramach subskrypcji obszaru roboczego Grafana należy zarejestrować następujących dostawców zasobów:
- Microsoft.Dashboard
Wymagania wstępne dotyczące klastrów Kubernetes z obsługą usługi Arc
- Wymagania wstępne dotyczące rozszerzeń klastra Kubernetes z obsługą usługi Azure Arc.
- Sprawdź wymagania dotyczące zapory oprócz wymagań sieciowych platformy Kubernetes z obsługą usługi Azure Arc.
- Jeśli wcześniej zainstalowano monitorowanie dla usługi AKS, przed kontynuowaniem upewnij się, że monitorowanie zostało wyłączone, aby uniknąć problemów podczas instalacji rozszerzenia.
- Jeśli wcześniej zainstalowano monitorowanie w klastrze przy użyciu skryptu bez rozszerzeń klastra, postępuj zgodnie z instrukcjami w temacie Wyłączanie monitorowania klastra Kubernetes, aby usunąć ten wykres helm.
Uwaga
Zarządzane rozszerzenie Kubernetes z obsługą usługi Arc z obsługą usługi Prometheus nie obsługuje następujących konfiguracji:
- Dystrybucje Red Hat Openshift, w tym azure Red Hat OpenShift (ARO)
- Węzły systemu Windows
Obszary robocze
W poniższej tabeli opisano obszary robocze wymagane do obsługi zarządzanych usług Prometheus i Container Insights. Każdy obszar roboczy można utworzyć w ramach procesu dołączania lub użyć istniejącego obszaru roboczego. Zobacz Projektowanie architektury obszaru roboczego usługi Log Analytics, aby uzyskać wskazówki dotyczące liczby obszarów roboczych do utworzenia i miejsca ich umieszczania.
Funkcja | Obszar roboczy | Uwagi |
---|---|---|
Zarządzane narzędzie Prometheus | Obszar roboczy usługi Azure Monitor | Contributor uprawnienie jest wystarczające do włączenia dodatku do wysyłania danych do obszaru roboczego usługi Azure Monitor. Aby wyświetlić metryki w usłudze Azure Managed Grafana, musisz Owner mieć uprawnienia na poziomie, aby połączyć obszar roboczy usługi Azure Monitor. Jest to wymagane, ponieważ użytkownik wykonujący krok dołączania musi mieć możliwość nadania roli Tożsamości Monitoring Reader systemu zarządzanej przez platformę Azure Grafana w obszarze roboczym usługi Azure Monitor w celu wykonywania zapytań dotyczących metryk. |
Analizy kontenerów | Obszar roboczy usługi Log Analytics | Klaster usługi AKS można dołączyć do obszaru roboczego usługi Log Analytics w innej subskrypcji platformy Azure w tej samej dzierżawie firmy Microsoft Entra, ale musisz użyć interfejsu wiersza polecenia platformy Azure lub szablonu usługi Azure Resource Manager. Obecnie nie można wykonać tej konfiguracji w witrynie Azure Portal. Jeśli łączysz istniejący klaster usługi AKS z obszarem roboczym usługi Log Analytics w innej subskrypcji, dostawca zasobów Microsoft.ContainerService musi zostać zarejestrowany w subskrypcji w obszarze roboczym usługi Log Analytics. Aby uzyskać dodatkowe informacje, zobacz Rejestrowanie dostawcy zasobów. Aby uzyskać listę obsługiwanych par mapowania używanych dla domyślnego obszaru roboczego, zobacz Mapowania regionów obsługiwane przez szczegółowe informacje o kontenerze. |
Zarządzane narzędzie Grafana | Obszar roboczy usługi Azure Managed Grafana | Połącz obszar roboczy narzędzia Grafana z obszarem roboczym usługi Azure Monitor, aby metryki rozwiązania Prometheus zebrane z klastra dostępne dla pulpitów nawigacyjnych narzędzia Grafana. |
Włączanie rozwiązań Prometheus i Grafana
Użyj jednej z poniższych metod, aby włączyć złomowanie metryk Rozwiązania Prometheus z klastra i włączyć zarządzaną aplikację Grafana w celu wizualizacji metryk. Zobacz Łączenie obszaru roboczego narzędzia Grafana, aby uzyskać opcje łączenia obszaru roboczego usługi Azure Monitor i obszaru roboczego usługi Azure Managed Grafana.
Uwaga
Jeśli masz jeden zasób usługi Azure Monitor połączony prywatnie, włączenie rozwiązania Prometheus nie będzie działać, jeśli klaster usługi AKS i obszar roboczy usługi Azure Monitor znajdują się w różnych regionach. Konfiguracja wymagana dla dodatku Prometheus nie jest dostępna między regionami ze względu na ograniczenie łącza prywatnego. Aby rozwiązać ten problem, utwórz nowe kontrolery domeny w lokalizacji klastra usługi AKS i nowe skojarzenie DCRA (skojarzenie) w tym samym regionie klastra usługi AKS. Skojarz nowe dcE z klastrem AKS i nadaj nowe skojarzenie (DCRA) jako configurationAccessEndpoint. Aby uzyskać pełne instrukcje dotyczące konfigurowania kontrolerów domeny skojarzonych z obszarem roboczym usługi Azure Monitor w celu korzystania z usługi Private Link do pozyskiwania danych, zobacz Włączanie łącza prywatnego na potrzeby monitorowania platformy Kubernetes w usłudze Azure Monitor.
Włączanie za pomocą interfejsu wiersza polecenia
Jeśli nie określisz istniejącego obszaru roboczego usługi Azure Monitor w następujących poleceniach, zostanie użyty domyślny obszar roboczy dla grupy zasobów. Jeśli domyślny obszar roboczy jeszcze nie istnieje w regionie klastra, jeden z nazwą w formacie DefaultAzureMonitorWorkspace-<mapped_region>
zostanie utworzony w grupie zasobów o nazwie DefaultRG-<cluster_region>
.
Wymagania wstępne
- Wymagana jest wersja interfejsu wiersza polecenia Az w wersji 2.49.0 lub nowszej.
- Rozszerzenie aks-preview musi zostać odinstalowane z klastrów usługi AKS przy użyciu polecenia
az extension remove --name aks-preview
. - Rozszerzenie k8s-extension musi być zainstalowane przy użyciu polecenia
az extension add --name k8s-extension
. - Wymagane jest rozszerzenie k8s w wersji 1.4.1 lub nowszej.
Klaster usługi AKS
-enable-azure-monitor-metrics
Użyj opcji az aks create
lub az aks update
(w zależności od tego, czy tworzysz nowy klaster, czy aktualizujesz istniejący klaster), aby zainstalować dodatek metryk, który złomuje metryki Prometheus.
Przykładowe polecenia
### Use default Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group>
### Use existing Azure Monitor workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <workspace-name-resource-id>
### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --azure-monitor-workspace-resource-id <azure-monitor-workspace-name-resource-id> --grafana-resource-id <grafana-workspace-name-resource-id>
### Use optional parameters
az aks create/update --enable-azure-monitor-metrics --name <cluster-name> --resource-group <cluster-resource-group> --ksm-metric-labels-allow-list "namespaces=[k8s-label-1,k8s-label-n]" --ksm-metric-annotations-allow-list "pods=[k8s-annotation-1,k8s-annotation-n]"
Klaster z obsługą usługi Arc
### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics
## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>
### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>
### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"
Dowolne z poleceń może używać następujących parametrów opcjonalnych:
- Usługa AKS:
--ksm-metric-annotations-allow-list
Łuk:--AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList
Rozdzielona przecinkami lista kluczy adnotacji Kubernetes używanych w metryce kube_resource_annotations zasobu. Na przykład kube_pod_annotations to metryka adnotacji dla zasobu zasobników. Domyślnie ta metryka zawiera tylko etykiety nazw i przestrzeni nazw. Aby uwzględnić więcej adnotacji, podaj listę nazw zasobów w ich postaci mnogiej i klucze adnotacji Kubernetes, które mają być dla nich dozwolone. Dla każdego zasobu można udostępnić pojedynczy*
element, aby zezwolić na wszelkie adnotacje, ale ma to poważne konsekwencje dla wydajności. Na przykładpods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],...
. - Usługa AKS:
--ksm-metric-labels-allow-list
Łuk:--AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist
Rozdzielona przecinkami lista większej liczby kluczy etykiet Kubernetes używanych w metryce kube_resource_labels kube_resource_labels zasobu. Na przykład kube_pod_labels to metryka etykiet zasobu zasobników. Domyślnie ta metryka zawiera tylko etykiety nazw i przestrzeni nazw. Aby uwzględnić więcej etykiet, podaj listę nazw zasobów w ich postaci mnogiej i klucze etykiet Kubernetes, które chcesz zezwolić dla nich Jeden*
można podać dla każdego zasobu, aby zezwolić na dowolne etykiety, ale ma to poważne konsekwencje dla wydajności. Na przykładpods=[app],namespaces=[k8s-label-1,k8s-label-n,...],...
. - AKS:
--enable-windows-recording-rules
umożliwia włączenie grup reguł rejestrowania wymaganych do prawidłowego funkcjonowania pulpitów nawigacyjnych systemu Windows.
Włączanie szczegółowych informacji o kontenerze
Użyj jednej z poniższych metod, aby włączyć szczegółowe informacje o kontenerze w klastrze. Po zakończeniu tej czynności zobacz Konfigurowanie zbierania danych agenta dla usługi Container Insights, aby dostosować konfigurację, aby się upewnić, że nie zbierasz większej ilości danych niż jest to wymagane.
Użyj jednego z następujących poleceń, aby umożliwić monitorowanie klastrów usługi AKS i usługi Arc. Jeśli nie określisz istniejącego obszaru roboczego usługi Log Analytics, zostanie użyty domyślny obszar roboczy dla grupy zasobów. Jeśli domyślny obszar roboczy jeszcze nie istnieje w regionie klastra, zostanie utworzony z nazwą w formacie DefaultWorkspace-<GUID>-<Region>
.
Wymagania wstępne
- Interfejs wiersza polecenia platformy Azure w wersji 2.43.0 lub nowszej
- Uwierzytelnianie tożsamości zarządzanej jest domyślne w interfejsie wiersza polecenia w wersji 2.49.0 lub nowszej.
- Rozszerzenie Azure k8s w wersji 1.3.7 lub nowszej
- Uwierzytelnianie tożsamości zarządzanej jest ustawieniem domyślnym w rozszerzeniu k8s w wersji 1.43.0 lub nowszej.
- Uwierzytelnianie tożsamości zarządzanej nie jest obsługiwane w przypadku klastrów Kubernetes z obsługą usługi Arc z usługą ARO (Azure Red Hat Openshift) ani węzłami systemu Windows. Użyj starszego uwierzytelniania.
- W przypadku interfejsu wiersza polecenia w wersji 2.54.0 lub nowszej schemat rejestrowania zostanie skonfigurowany na wartość ContainerLogV2 przy użyciu narzędzia ConfigMap.
Uwaga
Można włączyć schemat ContainerLogV2 dla klastra przy użyciu reguły zbierania danych klastra (DCR) lub ConfigMap. Jeśli oba ustawienia są włączone, pierwszeństwo będzie mieć ConfigMap. Dzienniki Stdout i stderr zostaną pozyskane tylko do tabeli ContainerLog, gdy zarówno dcR, jak i ConfigMap są jawnie wyłączone.
Klaster usługi AKS
### Use default Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name>
### Use existing Log Analytics workspace
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id>
### Use legacy authentication
az aks enable-addons --addon monitoring --name <cluster-name> --resource-group <cluster-resource-group-name> --workspace-resource-id <workspace-resource-id> --enable-msi-auth-for-monitoring false
Przykład
az aks enable-addons --addon monitoring --name "my-cluster" --resource-group "my-resource-group" --workspace-resource-id "/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"
Klaster z obsługą usługi Arc
### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers
### Use existing Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<workspace-resource-id>
### Use managed identity authentication (default as k8s-extension version 1.43.0)
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true
### Use advanced configuration settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi
### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=<customMountPath>
Zobacz sekcję żądania zasobów i limity wykresu programu Helm, aby zapoznać się z dostępnymi ustawieniami konfiguracji.
Przykład
az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/my-subscription/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"
Klaster z obsługą usługi Arc z serwerem proxy przekazywania dalej
Jeśli klaster jest skonfigurowany z serwerem proxy do przodu, ustawienia serwera proxy są automatycznie stosowane do rozszerzenia. W przypadku klastra z serwerem AMPLS i serwerem proxy należy zignorować konfigurację serwera proxy. Dołącz rozszerzenie przy użyciu ustawienia amalogs.ignoreExtensionProxySettings=true
konfiguracji .
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true
Klaster z obsługą usługi Arc z węzłami ARO lub OpenShift lub Windows
Uwierzytelnianie tożsamości zarządzanej nie jest obsługiwane w przypadku klastrów Kubernetes z obsługą usługi Arc z usługą ARO (Azure Red Hat OpenShift) ani węzłami OpenShift lub Windows. Użyj starszego uwierzytelniania, określając amalogs.useAADAuth=false
tak jak w poniższym przykładzie.
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false
Usuwanie wystąpienia rozszerzenia
Następujące polecenie usuwa tylko wystąpienie rozszerzenia, ale nie usuwa obszaru roboczego usługi Log Analytics. Dane w zasobie usługi Log Analytics pozostają nienaruszone.
az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>
Włączanie pełnego monitorowania za pomocą witryny Azure Portal
Nowy klaster usługi AKS (Prometheus, Container Insights i Grafana)
Podczas tworzenia nowego klastra usługi AKS w witrynie Azure Portal możesz włączyć pole wyboru Prometheus, Container Insights i Grafana na karcie Monitorowanie . Upewnij się, że zaznaczono pola wyboru Włącz dzienniki kontenerów, Włącz metryki Prometheus i Włącz narzędzie Grafana .
Istniejący klaster (Prometheus, Container Insights i Grafana)
- Przejdź do klastra usługi AKS w witrynie Azure Portal.
- W menu usługi w obszarze Monitorowanie wybierz pozycję Szczegółowe informacje>Skonfiguruj monitorowanie.
- Szczegółowe informacje o kontenerach są już włączone. Zaznacz pola wyboru Włącz metryki Prometheus i Włącz Grafana. Jeśli masz istniejący obszar roboczy usługi Azure Monitor i obszar roboczy narzędzia Grafana, są one wybrane dla Ciebie.
- Wybierz pozycję Ustawienia zaawansowane, jeśli chcesz wybrać alternatywne obszary robocze lub utworzyć nowe. Ustawienie Ustawienia ustawień wstępnych kosztów umożliwia zmodyfikowanie domyślnych szczegółów kolekcji w celu zmniejszenia kosztów monitorowania. Aby uzyskać szczegółowe informacje, zobacz Włączanie ustawień optymalizacji kosztów w usłudze Container Insights .
- Wybierz Konfiguruj.
Istniejący klaster (tylko prometheus)
- Przejdź do klastra usługi AKS w witrynie Azure Portal.
- W menu usługi w obszarze Monitorowanie wybierz pozycję Szczegółowe informacje>Skonfiguruj monitorowanie.
- Zaznacz pole wyboru Włącz metryki Prometheus.
- Wybierz pozycję Ustawienia zaawansowane, jeśli chcesz wybrać alternatywne obszary robocze lub utworzyć nowe. Ustawienie Ustawienia ustawień wstępnych kosztów umożliwia zmodyfikowanie domyślnych szczegółów kolekcji w celu zmniejszenia kosztów monitorowania.
- Wybierz Konfiguruj.
Włączanie zbierania metryk systemu Windows (wersja zapoznawcza)
Uwaga
Nie ma limitu procesora CPU/pamięci w pliku windows-exporter-daemonset.yaml, więc może on nadmiernie aprowizować węzły systemu Windows
Aby uzyskać więcej informacji, zobacz Rezerwacja zasobów
Podczas wdrażania obciążeń należy ustawić limity pamięci zasobów i procesora CPU dla kontenerów. Spowoduje to również odejmowanie z węzłaAllocatable i pomaga harmonogramowi w całym klastrze w określaniu zasobników do umieszczenia w których węzłach. Planowanie zasobników bez ograniczeń może spowodować nadmierną aprowizację węzłów systemu Windows, a w skrajnych przypadkach może spowodować, że węzły staną się w złej kondycji.
Od wersji 6.4.0-main-02-22-2023-3ee44b9e z zarządzanego kontenera dodatków Prometheus (prometheus_collector), kolekcja metryk systemu Windows została włączona dla klastrów usługi AKS. Dołączanie do dodatku Metryk usługi Azure Monitor umożliwia uruchamianie zasobników DaemonSet systemu Windows w pulach węzłów. Obsługiwane są systemy Windows Server 2019 i Windows Server 2022. Wykonaj następujące kroki, aby umożliwić zasobnikom zbieranie metryk z pul węzłów systemu Windows.
Ręcznie zainstaluj eksportera systemu Windows w węzłach usługi AKS, aby uzyskać dostęp do metryk systemu Windows, wdrażając plik YAML demona eksportera systemu Windows. Włącz następujące moduły zbierające:
[defaults]
container
memory
process
cpu_info
Aby uzyskać więcej modułów zbierających, zobacz Eksporter Prometheus dla metryk systemu Windows.
Wdróż plik YAML eksportera systemu Windows. Należy pamiętać, że jeśli w węźle zastosowano jakiekolwiek defekty, należy zastosować odpowiednie tolerancje.
kubectl apply -f windows-exporter-daemonset.yaml
Zastosuj mapę ama-metrics-settings-configmap do klastra. Ustaw wartości logiczne
windowsexporter
iwindowskubeproxy
natrue
wartość . Aby uzyskać więcej informacji, zobacz Metryki — configmap ustawień dodatku.Włącz reguły rejestrowania, które są wymagane dla wbudowanych pulpitów nawigacyjnych:
- W przypadku dołączania przy użyciu interfejsu wiersza polecenia dołącz opcję
--enable-windows-recording-rules
. - W przypadku dołączania przy użyciu szablonu usługi ARM, Bicep lub Azure Policy ustaw wartość
enableWindowsRecordingRules
natrue
w pliku parametrów. - Jeśli klaster jest już dołączony, użyj tego szablonu usługi ARM i tego pliku parametrów, aby utworzyć grupy reguł. Spowoduje to dodanie wymaganych reguł rejestrowania i nie jest operacją arm w klastrze i nie ma wpływu na bieżący stan monitorowania klastra.
- W przypadku dołączania przy użyciu interfejsu wiersza polecenia dołącz opcję
Weryfikowanie wdrożenia
Użyj narzędzia wiersza polecenia kubectl, aby sprawdzić, czy agent jest wdrożony prawidłowo.
Zarządzane narzędzie Prometheus
Sprawdź, czy zestaw DaemonSet został prawidłowo wdrożony w pulach węzłów systemu Linux
kubectl get ds ama-metrics-node --namespace=kube-system
Liczba zasobników powinna być równa liczbie węzłów systemu Linux w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-node 1 1 1 1 1 <none> 10h
Sprawdź, czy węzły systemu Windows zostały prawidłowo wdrożone
kubectl get ds ama-metrics-win-node --namespace=kube-system
Liczba zasobników powinna być równa liczbie węzłów systemu Windows w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-win-node 3 3 3 3 3 <none> 10h
Sprawdź, czy dwa zestawy replik zostały wdrożone dla rozwiązania Prometheus
kubectl get rs --namespace=kube-system
Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$kubectl get rs --namespace=kube-system
NAME DESIRED CURRENT READY AGE
ama-metrics-5c974985b8 1 1 1 11h
ama-metrics-ksm-5fcf8dffcd 1 1 1 11h
Analizy kontenerów
Sprawdź, czy zestawy DaemonSet zostały prawidłowo wdrożone w pulach węzłów systemu Linux
kubectl get ds ama-logs --namespace=kube-system
Liczba zasobników powinna być równa liczbie węzłów systemu Linux w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs 2 2 2 2 2 <none> 1d
Sprawdź, czy węzły systemu Windows zostały prawidłowo wdrożone
kubectl get ds ama-logs-windows --namespace=kube-system
Liczba zasobników powinna być równa liczbie węzłów systemu Windows w klastrze. Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs-windows 2 2 2 2 2 <none> 1d
Weryfikowanie wdrożenia rozwiązania Container Insights
kubectl get deployment ama-logs-rs --namespace=kube-system
Dane wyjściowe powinny przypominać następujący przykład:
User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME READY UP-TO-DATE AVAILABLE AGE
ama-logs-rs 1/1 1 1 24d
Wyświetlanie konfiguracji za pomocą interfejsu wiersza polecenia
aks show
Użyj polecenia , aby dowiedzieć się, czy rozwiązanie jest włączone, identyfikator zasobu obszaru roboczego usługi Log Analytics i informacje podsumowujące dotyczące klastra.
az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>
Polecenie zwróci informacje w formacie JSON dotyczące rozwiązania. Sekcja addonProfiles
powinna zawierać informacje na temat elementu omsagent
, jak w poniższym przykładzie:
"addonProfiles": {
"omsagent": {
"config": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"useAADAuth": "true"
},
"enabled": true,
"identity": null
},
}
Aprowizowane zasoby
Po włączeniu monitorowania w ramach subskrypcji są tworzone następujące zasoby:
Nazwa zasobu | Typ zasobu | Grupa zasobów | Region/lokalizacja | opis |
---|---|---|---|---|
MSCI-<aksclusterregion>-<clustername> |
Reguła zbierania danych | Tak samo jak klaster | Tak samo jak obszar roboczy usługi Log Analytics | Ta reguła zbierania danych dotyczy zbierania dzienników przez agenta usługi Azure Monitor, który używa obszaru roboczego usługi Log Analytics jako miejsca docelowego i jest skojarzony z zasobem klastra usługi AKS. |
MSPROM-<aksclusterregion>-<clustername> |
Reguła zbierania danych | Tak samo jak klaster | Tak samo jak obszar roboczy usługi Azure Monitor | Ta reguła zbierania danych dotyczy zbierania metryk prometheus według dodatku metryk, który wybrał obszar roboczy usługi Azure Monitor jako miejsce docelowe, a także jest skojarzony z zasobem klastra usługi AKS |
MSPROM-<aksclusterregion>-<clustername> |
Punkt końcowy zbierania danych | Tak samo jak klaster | Tak samo jak obszar roboczy usługi Azure Monitor | Ten punkt końcowy zbierania danych jest używany przez powyżej regułę zbierania danych na potrzeby pozyskiwania metryk Prometheus z dodatku metryk |
Podczas tworzenia nowego obszaru roboczego usługi Azure Monitor zostaną utworzone następujące dodatkowe zasoby
Nazwa zasobu | Typ zasobu | Grupa zasobów | Region/lokalizacja | opis |
---|---|---|---|---|
<azuremonitor-workspace-name> |
Reguła zbierania danych | <MA_azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed | Tak samo jak obszar roboczy usługi Azure Monitor | DcR utworzony podczas korzystania z serwera Prometheus systemu operacyjnego do zdalnego zapisu w obszarze roboczym usługi Azure Monitor. |
<azuremonitor-workspace-name> |
Punkt końcowy zbierania danych | <MA_azuremonitor-workspace-name>_<azuremonitor-workspace-region>_managed | Tak samo jak obszar roboczy usługi Azure Monitor | Środowisko DCE utworzone podczas korzystania z serwera Prometheus systemu operacyjnego do zdalnego zapisu w obszarze roboczym usługi Azure Monitor. |
Różnice między klastrami systemu Windows i Linux
Główne różnice w monitorowaniu klastra systemu Windows Server w porównaniu z klastrem systemu Linux obejmują:
- System Windows nie ma metryki RSS pamięci. W związku z tym nie jest dostępna dla węzłów i kontenerów systemu Windows. Dostępna jest metryka Zestawu roboczego.
- Informacje o pojemności magazynu dysku nie są dostępne dla węzłów systemu Windows.
- Monitorowane są tylko środowiska zasobników, a nie środowiska platformy Docker.
- W wersji zapoznawczej obsługiwane są maksymalnie 30 kontenerów systemu Windows Server. To ograniczenie nie dotyczy kontenerów systemu Linux.
Uwaga
Obsługa usługi Container Insights dla systemu operacyjnego Windows Server 2022 jest dostępna w wersji zapoznawczej.
Konteneryzowany agent systemu Linux (zasobnik zestawu replik) wykonuje wywołania interfejsu API do wszystkich węzłów systemu Windows na bezpiecznym porcie Kubelet (10250) w klastrze w celu zbierania metryk związanych z wydajnością węzła i kontenera. Bezpieczny port kubelet (:10250) powinien być otwarty w sieci wirtualnej klastra dla ruchu przychodzącego i wychodzącego dla węzła systemu Windows i kolekcji metryk związanych z wydajnością kontenera do działania.
Jeśli masz klaster Kubernetes z węzłami systemu Windows, przejrzyj i skonfiguruj sieciową grupę zabezpieczeń i zasady sieciowe, aby upewnić się, że bezpieczny port Kubelet (:10250) jest otwarty zarówno dla ruchu przychodzącego, jak i wychodzącego w sieci wirtualnej klastra.
Następne kroki
- Jeśli podczas próby dołączenia rozwiązania wystąpią problemy, zapoznaj się z przewodnikiem rozwiązywania problemów.
- Dzięki włączeniu monitorowania w celu zbierania kondycji i wykorzystania zasobów klastra usługi AKS i uruchomionych na nich obciążeń dowiedz się , jak używać szczegółowych informacji o kontenerze.