Envoyer des données Prometheus à Azure Monitor en utilisant l’authentification avec une identité managée par pod Microsoft Entra (préversion)
Cet article décrit comment configurer l’écriture à distance pour le service géré Azure Monitor pour Prometheus en utilisant l’authentification avec l’identité managée par pod Microsoft Entra (préversion).
Remarque
Le conteneur side-car d’écriture à distance décrit dans cet article doit être configuré seulement en utilisant les étapes suivantes, et seulement si le cluster Azure Kubernetes Service (AKS) a déjà un pod Microsoft Entra activé. Les identités managées par pod Microsoft Entra ont été déconseillées pour être remplacées par Microsoft Entra Workload ID. Nous vous recommandons d’utiliser l’authentification Microsoft Entra Workload ID.
Prérequis
Versions prises en charge
Les versions Prometheus supérieures à la version 2.45 sont requises pour l'authentification d'identité managée.
Espace de travail Azure Monitor
Cet article traite de l'envoi de métriques Prometheus à un espace de travail Azure Monitor. Pour créer un espace de travail Azure Monitor, consultez Gérer un espace de travail Azure Monitor.
Autorisations
Les autorisations d’administrateur pour le cluster ou la ressource sont nécessaires pour effectuer les étapes de cet article.
Configurer une application pour l’identité managée par pod Microsoft Entra
Le processus de configuration de l’écriture à distance Prometheus pour une application en utilisant l’authentification avec l’identité managée par pod Microsoft Entra implique d’effectuer les tâches suivantes :
- Inscrire une identité managée affectée par l’utilisateur auprès de Microsoft Entra ID.
- Attribuer les rôles Opérateur d’identité managée et Contributeur de machine virtuelle à l’identité managée.
- Attribuer le rôle Éditeur d’indicateurs de performance d’analyse à l’identité managée affectée par l’utilisateur.
- Créer une liaison d’identité Azure.
- Ajouter l’étiquette aadpodidbinding au pod Prometheus.
- Déployer un conteneur side-car pour configurer l’écriture à distance.
Les tâches sont décrites dans les sections suivantes.
Inscrire une identité managée auprès de Microsoft Entra ID
Créez une identité affectée par l’utilisateur ou inscrivez une identité managée affectée par l’utilisateur déjà existante.
Pour plus d’informations sur la création d’une identité managée, consultez Configurer l’écriture à distance pour le service managé Azure Monitor pour Prometheus en utilisant l’authentification avec une identité managée.
Attribuer les rôles Opérateur d’identité managée et Contributeur de machine virtuelle à l’identité managée
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>
Le groupe de ressources de nœud du cluster AKS contient des ressources que vous utilisez dans d’autres étapes de ce processus. Ce groupe de ressources a le nom MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. Vous trouverez le nom du groupe de ressources en utilisant le menu Groupes de ressources dans le portail Azure.
Attribuer le rôle Éditeur d’indicateurs de performance d’analyse à l’identité managée
az role assignment create --role "Monitoring Metrics Publisher" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId>
Créer une liaison d’identité Azure
L’identité managée affectée par l’utilisateur nécessite une liaison d’identité pour être utilisée en tant qu’identité managée par pod.
Copiez le YAML suivant dans le fichier aadpodidentitybinding.yaml :
apiVersion: "aadpodidentity.k8s.io/v1"
kind: AzureIdentityBinding
metadata:
name: demo1-azure-identity-binding
spec:
AzureIdentity: “<AzureIdentityName>”
Selector: “<AzureIdentityBindingSelector>”
Exécutez la commande suivante :
kubectl create -f aadpodidentitybinding.yaml
Ajouter l’étiquette aadpodidbinding au pod Prometheus
L’étiquette aadpodidbinding
doit être ajoutée au pod Prometheus pour que l’identité managée par pod prenne effet. Vous pouvez ajouter l’étiquette en mettant à jour le fichier deployment.yaml ou en injectant des étiquettes quand vous déployez le conteneur side-car comme décrit dans la section suivante.
Déployer un conteneur side-car pour configurer l’écriture à distance
Copiez le code YAML suivant et enregistrez-le dans un fichier. Le code YAML utilise le port 8081 comme port d’écoute. Si vous utilisez un autre port, modifiez cette valeur dans le 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>
Remplacez les valeurs suivantes dans le YAML :
Valeur Description <AKS-CLUSTER-NAME>
Le nom de votre cluster AKS. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
La version d’image conteneur d’écriture distante.<INGESTION-URL>
La valeur pour Point de terminaison d’ingestion des métriques de la page Vue d’ensemble de l’espace de travail Azure Monitor. <MANAGED-IDENTITY-CLIENT-ID>
La valeur de ID client de la page Vue d’ensemble de l’identité managée. <CLUSTER-NAME>
Le nom du cluster sur lequel Prometheus s’exécute. Important
Pour le cloud Azure Government, ajoutez les variables d’environnement suivantes dans la section
env
du fichier YAML :- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Utilisez Helm pour appliquer le fichier YAML et mettre à jour votre configuration 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>
Vérification et résolution des problèmes
Pour plus d'informations sur la vérification et la résolution des problèmes, consultez Résolution des problèmes de l'écriture distante et le service géré pour Prometheus Azure Monitor pour l'écriture distante Prometheus.
Étapes suivantes
- Collecter des métriques Prometheus à partir du cluster AKS
- En savoir plus sur le service géré Azure Monitor pour Prometheus
- Écriture à distance dans le service managé Azure Monitor pour Prometheus
- Envoyer des données Prometheus à Azure Monitor en utilisant l’authentification Microsoft Entra
- Envoyer des données Prometheus à Azure Monitor en utilisant l’authentification avec une identité managée
- Envoyer des données Prometheus à Azure Monitor en utilisant l’authentification Microsoft Entra Workload ID (préversion)