Wysyłanie danych rozwiązania Prometheus do usługi Azure Monitor przy użyciu uwierzytelniania tożsamości zarządzanej
W tym artykule opisano sposób konfigurowania zdalnego zapisu w celu wysyłania danych z własnego serwera Prometheus działającego w klastrze usługi Azure Kubernetes Service (AKS) lub klastrze Kubernetes z włączoną usługą Azure Arc przy użyciu uwierzytelniania tożsamości zarządzanej i kontenera samochodu bocznego dostarczonego przez usługę Azure Monitor. Możesz użyć istniejącej tożsamości utworzonej przez usługę AKS lub utworzyć własną. Obie opcje zostały opisane tutaj.
Uwaga
Jeśli używasz tożsamości zarządzanej przypisanej przez użytkownika, zalecamy bezpośrednie skonfigurowanie rozwiązania Prometheus uruchomionego w klastrze Kubernetes w celu zdalnego zapisu w obszarze roboczym usługi Azure Monitor. Aby dowiedzieć się więcej, zobacz Wysyłanie danych rozwiązania Prometheus do usługi Azure Monitor przy użyciu tożsamości zarządzanej przypisanej przez użytkownika. W poniższych krokach użyto kontenera samochodu bocznego usługi Azure Monitor.
Konfiguracje klastrów
Ten artykuł dotyczy następujących konfiguracji klastra:
- Klaster usługi Azure Kubernetes Service;
- Klaster Kubernetes z obsługą usługi Azure Arc
Uwaga
Aby uzyskać informacje na temat konfigurowania zdalnego zapisu dla klastra Kubernetes działającego w innej chmurze lub lokalnie, zobacz Wysyłanie danych Prometheus do usługi Azure Monitor przy użyciu uwierzytelniania firmy Microsoft Entra.
Wymagania wstępne
Obsługiwane wersje
Wersje prometheus większe niż wersja 2.45 są wymagane do uwierzytelniania tożsamości zarządzanej.
Obszar roboczy usługi Azure Monitor
W tym artykule opisano wysyłanie metryk rozwiązania Prometheus do obszaru roboczego usługi Azure Monitor. Aby utworzyć obszar roboczy usługi Azure Monitor, zobacz Zarządzanie obszarem roboczym usługi Azure Monitor.
Uprawnienia
Uprawnienia administratora dla klastra lub zasobu są wymagane do wykonania kroków opisanych w tym artykule.
Konfigurowanie aplikacji pod kątem tożsamości zarządzanej
Proces konfigurowania zdalnego zapisu rozwiązania Prometheus dla aplikacji przy użyciu uwierzytelniania tożsamości zarządzanej obejmuje wykonanie następujących zadań:
- Pobierz nazwę grupy zasobów węzła usługi AKS.
- Pobierz identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika.
- Przypisz rolę Wydawca metryk monitorowania w regule zbierania danych obszaru roboczego do tożsamości zarządzanej.
- Nadaj klastrowi usługi AKS dostęp do tożsamości zarządzanej.
- Wdróż kontener przyczepki, aby skonfigurować zdalny zapis.
Zadania są opisane w poniższych sekcjach.
Pobieranie nazwy grupy zasobów węzła usługi AKS
Grupa zasobów węzła klastra usługi AKS zawiera zasoby używane w innych krokach tego procesu. Ta grupa zasobów ma nazwę MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. Nazwę grupy zasobów można znaleźć za pomocą menu Grupy zasobów w witrynie Azure Portal.
Pobieranie identyfikatora klienta tożsamości zarządzanej przypisanej przez użytkownika
Musisz uzyskać identyfikator klienta tożsamości, której chcesz użyć. Skopiuj identyfikator klienta, aby użyć go w dalszej części procesu.
Zamiast tworzyć własny identyfikator klienta, możesz użyć jednej z tożsamości utworzonych przez usługę AKS. Aby dowiedzieć się więcej o tożsamościach, zobacz Używanie tożsamości zarządzanej w usłudze Azure Kubernetes Service.
W tym artykule jest używana tożsamość kubelet. Nazwa tej tożsamości to <AKS-CLUSTER-NAME>-agentpool
, i znajduje się w grupie zasobów węzła klastra usługi AKS.
Wybierz tożsamość zarządzaną <AKS-CLUSTER-NAME>-agentpool
. Na stronie Przegląd skopiuj wartość identyfikatora klienta. Aby uzyskać więcej informacji, zobacz Zarządzanie tożsamościami zarządzanymi przypisanymi przez użytkownika.
Przypisywanie roli Wydawca metryk monitorowania w regule zbierania danych obszaru roboczego do tożsamości zarządzanej
Tożsamość zarządzana musi mieć przypisaną rolę Wydawca metryk monitorowania w regule zbierania danych skojarzonej z obszarem roboczym usługi Azure Monitor.
W menu zasobów dla obszaru roboczego usługi Azure Monitor wybierz pozycję Przegląd. W obszarze Reguła zbierania danych wybierz link.
W menu zasobów dla reguły zbierania danych wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
Wybierz pozycję Dodaj, a następnie wybierz pozycję Dodaj przypisanie roli.
Wybierz rolę Wydawca metryk monitorowania, a następnie wybierz przycisk Dalej.
Wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków. Wybierz subskrypcję zawierającą tożsamość przypisaną przez użytkownika, a następnie wybierz pozycję Tożsamość zarządzana przypisana przez użytkownika. Wybierz tożsamość przypisaną przez użytkownika, której chcesz użyć, a następnie wybierz pozycję Wybierz.
Aby ukończyć przypisanie roli, wybierz pozycję Przejrzyj i przypisz.
Nadawanie klastrowi usługi AKS dostępu do tożsamości zarządzanej
Ten krok nie jest wymagany, jeśli używasz tożsamości usługi AKS. Tożsamość usługi AKS ma już dostęp do klastra.
Ważne
Aby wykonać kroki opisane w tej sekcji, musisz mieć uprawnienia właściciela lub administratora dostępu użytkowników dla klastra.
Zidentyfikuj zestawy skalowania maszyn wirtualnych w grupie zasobów węzła dla klastra usługi AKS.
Dla każdego zestawu skalowania maszyn wirtualnych uruchom następujące polecenie w interfejsie wiersza polecenia platformy Azure:
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
Wdrażanie kontenera przyczepki w celu skonfigurowania zdalnego zapisu
Skopiuj następujący kod YAML i zapisz go w pliku. Kod YAML używa portu 8081 jako portu nasłuchiwania. Jeśli używasz innego portu, zmodyfikuj port w języku YAML.
prometheus: prometheusSpec: externalLabels: cluster: <AKS-CLUSTER-NAME> ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write remoteWrite: - url: 'http://localhost:8081/api/v1/write' ## Azure Managed Prometheus currently exports some default mixins in Grafana. ## These mixins are compatible with Azure Monitor agent on your Azure Kubernetes Service cluster. ## However, these mixins aren't compatible with Prometheus metrics scraped by the Kube Prometheus stack. ## In order to make these mixins compatible, uncomment remote write relabel configuration below: ## writeRelabelConfigs: ## - sourceLabels: [metrics_path] ## regex: /metrics/cadvisor ## targetLabel: job ## replacement: cadvisor ## action: replace ## - sourceLabels: [job] ## regex: 'node-exporter' ## targetLabel: job ## replacement: node ## action: replace containers: - name: prom-remotewrite image: <CONTAINER-IMAGE-VERSION> imagePullPolicy: Always ports: - name: rw-port containerPort: 8081 livenessProbe: httpGet: path: /health port: rw-port initialDelaySeconds: 10 timeoutSeconds: 10 readinessProbe: httpGet: path: /ready port: rw-port initialDelaySeconds: 10 timeoutSeconds: 10 env: - name: INGESTION_URL value: <INGESTION_URL> - name: LISTENING_PORT value: '8081' - name: IDENTITY_TYPE value: userAssigned - name: AZURE_CLIENT_ID value: <MANAGED-IDENTITY-CLIENT-ID> # Optional parameter - name: CLUSTER value: <CLUSTER-NAME>
Zastąp następujące wartości w pliku YAML:
Wartość Opis <AKS-CLUSTER-NAME>
Nazwa klastra usługi AKS. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
Zdalna wersja obrazu kontenera zapisu.<INGESTION-URL>
Wartość punktu końcowego pozyskiwania metryk na stronie Przegląd obszaru roboczego usługi Azure Monitor. <MANAGED-IDENTITY-CLIENT-ID>
Wartość identyfikatora klienta na stronie Przegląd tożsamości zarządzanej. <CLUSTER-NAME>
Nazwa klastra, na którym działa rozwiązanie Prometheus. Ważne
W przypadku chmury Azure Government dodaj następujące zmienne środowiskowe w
env
sekcji pliku YAML:- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Otwórz usługę Azure Cloud Shell i przekaż plik YAML.
Użyj narzędzia Helm, aby zastosować plik YAML i zaktualizować konfigurację rozwiązania Prometheus:
# set context to your cluster az aks get-credentials -g <aks-rg-name> -n <aks-cluster-name> # use Helm to update your remote write config helm upgrade -f <YAML-FILENAME>.yml prometheus prometheus-community/kube-prometheus-stack --namespace <namespace where Prometheus pod resides>
Weryfikacja i rozwiązywanie problemów
Aby uzyskać informacje dotyczące weryfikacji i rozwiązywania problemów, zobacz Rozwiązywanie problemów z zdalnym zapisem i usługą zarządzaną Azure Monitor dla zdalnego zapisu w usłudze Prometheus.
Następne kroki
- Zbieranie metryk rozwiązania Prometheus z klastra usługi AKS
- Dowiedz się więcej o usłudze zarządzanej Azure Monitor dla rozwiązania Prometheus
- Zdalne zapisywanie w usłudze zarządzanej Azure Monitor dla rozwiązania Prometheus
- Wysyłanie danych rozwiązania Prometheus do usługi Azure Monitor przy użyciu uwierzytelniania firmy Microsoft Entra
- Wysyłanie danych rozwiązania Prometheus do usługi Azure Monitor przy użyciu uwierzytelniania Tożsamość obciążeń Microsoft Entra (wersja zapoznawcza)
- Wysyłanie danych rozwiązania Prometheus do usługi Azure Monitor przy użyciu uwierzytelniania tożsamości zarządzanej przez pod firmy Microsoft (wersja zapoznawcza)