Share via


Senden von Prometheus-Daten an Azure Monitor unter Verwendung der Authentifizierung mit podseitig-verwalteter Microsoft Entra-Identität (Vorschau)

Dieser Artikel beschreibt, wie Sie Remoteschreibvorgänge für den verwalteten Azure Monitor-Dienst für Prometheus mithilfe der Authentifizierung mit verwalteter Microsoft Entra-Identität (Vorschau) einrichten.

Hinweis

Der in diesem Artikel beschriebene Remoteschreib-Sidecar-Container sollte nur mithilfe der folgenden Schritte eingerichtet werden, und nur, wenn der Azure Kubernetes Service (AKS)-Cluster bereits einen Microsoft Entra-Pod aktiviert hat. Microsoft Entra podverwaltete Identitäten sind veraltet, und werden durch Microsoft Entra Workload IDersetzt. Es wird empfohlen, die Microsoft Entra Workload ID-Authentifizierung zu verwenden.

Voraussetzungen

Unterstützte Versionen

Prometheus-Versionen größer als v2.45 sind für die Authentifizierung mit der verwalteten Identität erforderlich.

Azure Monitor-Arbeitsbereich

Dieser Artikel behandelt das Senden von Prometheus-Metriken an einen Azure Monitor-Arbeitsbereich. Informationen zum Erstellen eines Azure Monitor-Arbeitsbereichs finden Sie unter Verwalten eines Azure Monitor-Arbeitsbereichs.

Berechtigungen

Zum Ausführen der Schritte in diesem Artikel sind Administratorberechtigungen für den Cluster oder die Ressource erforderlich.

Einrichten einer Anwendung für die verwaltete Microsoft Entra-Identität

Der Prozess zum Einrichten des Prometheus-Remoteschreibvorgangs für eine Anwendung mithilfe der von Microsoft Entra verwalteten Identitätsauthentifizierung umfasst die Durchführung der folgenden Aufgaben:

  1. Registrieren sie eine vom Benutzer zugewiesene verwaltete Identität mit Microsoft Entra ID.
  2. Weisen Sie der verwalteten Identität die Rollen „Operator der verwalteten Identität“ und „Mitwirkender virtueller Computer“ zu.
  3. Weisen Sie der vom Benutzer zugewiesenen verwalteten Identität die Rolle „Herausgeber von Überwachungsmetriken“ zu.
  4. Erstellen Sie eine Azure-Identitätsbindung.
  5. Fügen Sie dem Prometheus-Pod die Bezeichnung „aadpodidbinding“ hinzu.
  6. Stellen Sie einen Sidecar-Container zum Einrichten des Remoteschreibzugriffs bereit.

Die Aufgaben werden in den folgenden Abschnitten beschrieben.

Registrieren einer verwalteten Identität mit Microsoft Entra ID

Erstellen Sie eine vom Benutzer zugewiesene verwaltete Identität, oder registrieren Sie eine vorhandene vom Benutzer zugewiesene verwaltete Identität.

Informationen zum Erstellen einer verwalteten Identität finden Sie unter Einrichten des Remoteschreibvorgangs für den verwalteten Azure Monitor-Dienst für Prometheus mithilfe der verwalteten Identitätsauthentifizierung.

Zuweisen der Rollen „Operator der verwalteten Identität“ und „Mitwirkender virtueller Computer“ an die verwaltete Identität

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> 

Die Knotenressourcengruppe des AKS-Clusters enthält Ressourcen, die Sie für andere Schritte in diesem Prozess verwenden. Diese Ressourcengruppe hat den Namen MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>. Sie finden den Ressourcengruppennamen mithilfe des Menüs Ressourcengruppen im Azure-Portal.

Zuweisen der Rolle „Herausgeber von Überwachungsmetriken“ an die verwalteten Identität

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

Erstellen einer Azure-Identitätsbindung

Für die vom Benutzer zugewiesene verwaltete Identität ist eine Identitätsbindung erforderlich, damit die Identität als podverwaltete Identität verwendet wird.

Kopieren Sie die folgende YAML-Datei in die Datei aadpodidentitybinding.yaml:


apiVersion: "aadpodidentity.k8s.io/v1" 

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

Führen Sie den folgenden Befehl aus:

kubectl create -f aadpodidentitybinding.yaml 

Hinzufügen der Bezeichnung „aadpodidbinding“ zum Prometheus-Pod

Die aadpodidbinding-Bezeichnung muss dem Prometheus-Pod hinzugefügt werden, damit die podverwaltete Identität wirksam wird. Sie können die Bezeichnung hinzufügen, indem Sie die Datei deployment.yaml aktualisieren oder Bezeichnungen einfügen, wenn Sie den Sidecar-Container wie im nächsten Abschnitt beschrieben bereitstellen.

Bereitstellen eines Sidecar-Containers zum Einrichten des Remoteschreibzugriffs

  1. Kopieren Sie den folgenden YAML-Code, und speichern Sie ihn in einer Datei. In dem YAML-Code wird der Port 8081 als Lauschport verwendet. Ändern Sie diesen Wert im YAML-Code, falls Sie einen anderen Port verwenden.

    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. Ersetzen Sie die folgenden Werte in YAML:

    Wert Beschreibung
    <AKS-CLUSTER-NAME> Der Name Ihres AKS-Clusters.
    <CONTAINER-IMAGE-VERSION> mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240507.1
    Die Version des Remoteschreibzugriff-Containerimages.
    <INGESTION-URL> Der Wert für Metrikerfassungsendpunkt auf der Seite Übersicht für den Azure Monitor-Arbeitsbereich.
    <MANAGED-IDENTITY-CLIENT-ID> Der Wert für Client-ID auf der Seite Übersicht für die verwaltete Identität.
    <CLUSTER-NAME> Der Name des Clusters, in dem Prometheus ausgeführt wird.

    Wichtig

    Fügen Sie für die Azure Government-Cloud die folgenden Umgebungsvariablen im env-Abschnitt der YAML-Datei hinzu:

    - name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/

  3. Verwenden Sie Helm, um die YAML-Datei anzuwenden und Ihre Prometheus-Konfiguration zu aktualisieren:

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

Überprüfung und Problembehandlung

Informationen zur Überprüfung und Problembehandlung finden Sie unter Problembehandlung bei Remoteschreibzugriff und Verwalteter Azure Monitor-Dienst für Prometheus-Remoteschreibzugriff.

Nächste Schritte