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:
- Registrieren sie eine vom Benutzer zugewiesene verwaltete Identität mit Microsoft Entra ID.
- Weisen Sie der verwalteten Identität die Rollen „Operator der verwalteten Identität“ und „Mitwirkender virtueller Computer“ zu.
- Weisen Sie der vom Benutzer zugewiesenen verwalteten Identität die Rolle „Herausgeber von Überwachungsmetriken“ zu.
- Erstellen Sie eine Azure-Identitätsbindung.
- Fügen Sie dem Prometheus-Pod die Bezeichnung „aadpodidbinding“ hinzu.
- 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
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>
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-20240617.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/
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
- Sammeln von Prometheus-Metriken aus einem AKS-Cluster
- Weitere Informationen zum verwalteten Azure Monitor-Dienst für Prometheus
- Remoteschreibzugriff im verwalteten Azure Monitor-Dienst für Prometheus
- Senden von Prometheus-Daten an Azure Monitor mithilfe der Microsoft Entra-Authentifizierung
- Senden von Prometheus-Daten an Azure Monitor unter Verwendung der Authentifizierung mit verwalteten Identitäten
- Senden von Prometheus-Daten an Azure Monitor unter Verwendung der Authentifizierung mit Microsoft Entra Workload ID (Vorschau)