Envoyer des données Prometheus à Azure Monitor en utilisant l’authentification avec une identité managée
Cet article décrit comment configurer l’écriture à distance pour envoyer des données depuis un serveur Prometheus autogéré s’exécutant dans votre cluster Azure Kubernetes Service (AKS) ou dans votre cluster Kubernetes avec Azure Arc en utilisant l’authentification avec une identité managée et un conteneur side-car fournit par Azure Monitor. Vous pouvez utiliser une identité existante qui est créée par AKS ou bien créer la vôtre. Les deux options sont décrites ici.
Remarque
Si vous utilisez l’identité managée affectée par l’utilisateur, nous vous recommandons de configurer directement Prometheus s’exécutant sur votre cluster Kubernetes pour écrire à distance dans l’espace de travail Azure Monitor. Pour en savoir plus, consultez Envoyer des données Prometheus à Azure Monitor en utilisant une identité managée affectée par l’utilisateur. Les étapes ci-dessous utilisent le conteneur side-car Azure Monitor.
Configurations de cluster
Cet article s’applique aux configurations de cluster suivantes :
- Cluster Azure Kubernetes Service
- Cluster Kubernetes avec Azure Arc
Remarque
Pour plus d’informations sur la configuration de l’écriture à distance pour un cluster Kubernetes s’exécutant dans un autre cloud ou en local, consultez Envoyer des données Prometheus à Azure Monitor en utilisant l’authentification Microsoft Entra.
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
Le processus de configuration de l’écriture à distance Prometheus pour application en utilisant l’authentification avec une identité managée implique d’effectuer les tâches suivantes :
- Obtenir le nom du groupe de ressources du nœud AKS.
- Obtenir l’ID client de l’identité managée affectée par l’utilisateur.
- Attribuer à l’identité managée le rôle Éditeur d’indicateurs de performance d’analyse sur la règle de collecte de données d’espace de travail.
- Donner au cluster AKS l’accès à l’identité managée.
- Déployer un conteneur side-car pour configurer l’écriture à distance.
Les tâches sont décrites dans les sections suivantes.
Obtenir le nom du groupe de ressources du nœud AKS
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.
Obtenir l’ID client de l’identité managée affectée par l’utilisateur
Vous devez obtenir l’ID client de l’identité que vous allez utiliser. Copiez l’ID client pour l’utiliser plus tard dans le processus.
Au lieu de créer votre propre ID client, vous pouvez utiliser une des identités créées par AKS. Pour plus d’informations sur les identités, consultez Utiliser une identité managée dans Azure Kubernetes Service.
Cet article utilise l’identité kubelet. Le nom de cette identité est <AKS-CLUSTER-NAME>-agentpool
et elle se trouve dans le groupe de ressources de nœud du cluster AKS.
Sélectionnez l’identité managée <AKS-CLUSTER-NAME>-agentpool
. Dans la page Vue d’ensemble, copiez la valeur de ID client. Pour plus d’informations, consultez Gérer les identités managées affectées par l’utilisateur.
Attribuer à l’identité managée le rôle Éditeur d’indicateurs de performance d’analyse sur la règle de collecte de données d’espace de travail
L’identité managée nécessite le rôle Éditeur d’indicateurs de performance d’analyse sur la règle de collecte de données associée à votre espace de travail Azure Monitor.
Dans le menu des ressources de votre espace de travail Azure Monitor, sélectionnez Vue d’ensemble. Pour Règle de collecte de données, sélectionnez le lien.
Dans le menu des ressources de la règle de collecte de données, sélectionnez Contrôle d’accès (IAM).
Sélectionnez Ajouter, puis sélectionnez Ajouter une attribution de rôle.
Sélectionnez le rôle Éditeur d’indicateurs de performance d’analyse, puis sélectionnez Suivant.
Sélectionnez Identité managée, puis choisissez Sélectionner les membres. Sélectionnez l’abonnement qui contient l’identité affectée par l’utilisateur, puis sélectionnez Identité managée affectée par l’utilisateur. Sélectionnez l’identité affectée par l’utilisateur que vous souhaitez utiliser, puis choisissez Sélectionner.
Pour terminer le processus d’attribution de rôle, sélectionnez Vérifier + attribuer.
Donner au cluster AKS l’accès à l’identité managée
Cette étape n’est pas nécessaire si vous utilisez une identité AKS. Une identité AKS a déjà accès au cluster.
Important
Pour effectuer les étapes décrites dans cette section, vous devez disposer des autorisations d’administrateur d’accès propriétaire ou utilisateur pour le cluster.
Identifiez les groupes de machines virtuelles identiques dans le groupe de ressources de nœud de votre cluster AKS.
Pour chaque groupe de machines virtuelles identiques, exécutez la commande suivante dans Azure CLI :
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
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: 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>
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/
Ouvrez Azure Cloud Shell et chargez le fichier YAML.
Utilisez Helm pour appliquer le fichier YAML et mettre à jour votre configuration 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>
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 Microsoft Entra Workload ID (préversion)
- Envoyer des données Prometheus à Azure Monitor en utilisant l’authentification avec une identité managée par un pod Microsoft Entra (préversion)