Udostępnij za pośrednictwem


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)

W tym artykule opisano sposób konfigurowania zdalnego zapisu dla usługi zarządzanej Azure Monitor dla rozwiązania Prometheus przy użyciu uwierzytelniania tożsamości zarządzanej przez pod firmy Microsoft (wersja zapoznawcza).

Uwaga

Zdalny kontener przyczepki zapisu opisany w tym artykule powinien być skonfigurowany tylko przy użyciu poniższych kroków i tylko wtedy, gdy klaster usługi Azure Kubernetes Service (AKS) ma już włączony zasobnik firmy Microsoft Entra. Tożsamości zarządzane przez zasobniki firmy Microsoft zostały uznane za przestarzałe, aby zostały zastąpione przez Tożsamość obciążeń Microsoft Entra. Zalecamy użycie uwierzytelniania Tożsamość obciążeń 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 dla tożsamości zarządzanej przez pod firmy Microsoft

Proces konfigurowania zdalnego zapisu rozwiązania Prometheus dla aplikacji przy użyciu uwierzytelniania tożsamości zarządzanej przez pod firmy Microsoft obejmuje wykonanie następujących zadań:

  1. Zarejestruj tożsamość zarządzaną przypisaną przez użytkownika przy użyciu identyfikatora Entra firmy Microsoft.
  2. Przypisz role Operator tożsamości zarządzanej i Współautor maszyny wirtualnej do tożsamości zarządzanej.
  3. Przypisz rolę Wydawca metryk monitorowania do tożsamości zarządzanej przypisanej przez użytkownika.
  4. Utwórz powiązanie tożsamości platformy Azure.
  5. Dodaj etykietę aadpodidbinding do zasobnika Prometheus.
  6. Wdróż kontener przyczepki, aby skonfigurować zdalny zapis.

Zadania są opisane w poniższych sekcjach.

Rejestrowanie tożsamości zarządzanej przy użyciu identyfikatora Entra firmy Microsoft

Utwórz tożsamość zarządzaną przypisaną przez użytkownika lub zarejestruj istniejącą tożsamość zarządzaną przypisaną przez użytkownika.

Aby uzyskać informacje na temat tworzenia tożsamości zarządzanej, zobacz Konfigurowanie zdalnego zapisu dla usługi zarządzanej Azure Monitor dla usługi Prometheus przy użyciu uwierzytelniania tożsamości zarządzanej.

Przypisywanie ról Operator tożsamości zarządzanej i Współautor maszyny wirtualnej do tożsamości zarządzanej

az role assignment create --role "Managed Identity Operator" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId> 
          
az role assignment create --role "Virtual Machine Contributor" --assignee <managed identity clientID> --scope <Node ResourceGroup Id> 

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.

Przypisywanie roli Wydawca metryk monitorowania do tożsamości zarządzanej

az role assignment create --role "Monitoring Metrics Publisher" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId> 

Tworzenie powiązania tożsamości platformy Azure

Tożsamość zarządzana przypisana przez użytkownika wymaga powiązania tożsamości, aby tożsamość była używana jako tożsamość zarządzana zasobnika.

Skopiuj następujący kod YAML do pliku aadpodidentitybinding.yaml :


apiVersion: "aadpodidentity.k8s.io/v1" 

kind: AzureIdentityBinding 
metadata: 
name: demo1-azure-identity-binding 
spec: 
AzureIdentity: “<AzureIdentityName>” 
Selector: “<AzureIdentityBindingSelector>” 

Uruchom następujące polecenie:

kubectl create -f aadpodidentitybinding.yaml 

Dodaj etykietę aadpodidbinding do zasobnika Prometheus

Etykietę aadpodidbinding należy dodać do zasobnika Prometheus, aby tożsamość zarządzana zasobnika weszła w życie. Etykietę można dodać, aktualizując plik deployment.yaml lub iniekując etykiety podczas wdrażania kontenera przyczepki zgodnie z opisem w następnej sekcji.

Wdrażanie kontenera przyczepki w celu skonfigurowania zdalnego zapisu

  1. 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 ją w pliku YAML.

    prometheus: 
      prometheusSpec: 
        podMetadata: 
          labels: 
            aadpodidbinding: <AzureIdentityBindingSelector> 
        externalLabels: 
          cluster: <AKS-CLUSTER-NAME> 
        remoteWrite: 
        - url: 'http://localhost:8081/api/v1/write' 
        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>         
    
  2. 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/

  3. Użyj narzędzia Helm, aby zastosować plik YAML i zaktualizować konfigurację rozwiązania Prometheus:

    # set the 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