Partager via


Azure Monitor et Prometheus

Prometheus est une solution de surveillance et d’alerte open source populaire, qui est largement utilisée dans l’écosystème natif Cloud. Les organisations utilisent Prometheus pour surveiller et alerter sur les performances de l’infrastructure et des charges de travail. Il est souvent utilisé dans les environnements Kubernetes.

Vous pouvez utiliser Prometheus comme un service géré Azure ou un service autogéré pour collecter des métriques. Vous pouvez collecter les métriques Prometheus à partir de clusters Azure Kubernetes Service (AKS), de clusters Kubernetes avec Azure Arc, de machines virtuelles et de groupes de machines virtuelles identiques.

Les métriques Prometheus sont stockées dans un espace de travail Azure Monitor. Vous pouvez analyser et visualiser les données dans un espace de travail à l’aide de l’explorateur de métriques avec Prometheus Query Language (PromQL) et Azure Managed Grafana.

Important

L’utilisation d’Azure Monitor pour gérer et héberger Prometheus vise à stocker des informations sur l’intégrité des services des ordinateurs et applications client. Elle n’est pas destinée au stockage de données personnelles. Nous recommandons vivement de ne pas envoyer d’informations sensibles (comme des noms d’utilisateur et des numéros de carte de crédit) dans les champs du service Prometheus hébergé par Azure Monitor, comme les noms de métriques, les noms d’étiquettes ou les valeurs d’étiquette.

Service Azure Monitor géré pour Prometheus

Le service géré Azure Monitor pour Prometheus est un composant de Métriques Azure Monitor qui fournit un environnement complètement managé et évolutif pour exécuter Prometheus. Il simplifie le déploiement, la gestion et la mise à l’échelle de Prometheus dans AKS, ce qui vous permet de vous concentrer sur la surveillance de vos applications et de votre infrastructure.

En tant que service complètement managé, le service géré Azure Monitor pour Prometheus déploie automatiquement Prometheus dans AKS ou Kubernetes avec Azure Arc. Le service fournit une haute disponibilité, des garanties de contrat de niveau de service (SLA) et des mises à jour logicielles automatiques. Il fournit un magasin de métriques hautement évolutif qui conserve les données jusqu’à 18 mois.

Le service géré Azure Monitor pour Prometheus fournit des alertes, des règles et des tableaux de bord préconfigurés. Avec les tableaux de bord recommandés de la communauté Prometheus et l’intégration native Grafana, vous disposez immédiatement d’une surveillance complète. Le service managé Azure Monitor pour Prometheus s’intègre à Azure Managed Grafana et fonctionne également avec Grafana autogéré.

La tarification repose sur l’ingestion et la requête sans coût de stockage supplémentaire. Pour plus d’informations, consultez l’onglet Métriques dans Tarification Azure Monitor.

Activer le service géré Azure Monitor pour Prometheus

Le service managé Azure Monitor pour Prometheus collecte des données à partir d’AKS et de Kubernetes avec Azure Arc.

Pour activer le service géré Azure Monitor pour Prometheus, vous devez créer un espace de travail Azure Monitor pour stocker les métriques. Vous pouvez ensuite intégrer des services qui collectent les métriques Prometheus :

Pour activer le service géré Prometheus pour les clouds en air gap de Microsoft Azure, contactez le support technique.

Prometheus autogéré hébergé par Azure

Outre le service géré pour Prometheus, vous pouvez installer et gérer votre propre instance de Prometheus et utiliser l’écriture à distance pour stocker des métriques dans un espace de travail Azure Monitor.

L’écriture à distance vous permet de collecter des données à partir de serveurs Prometheus autogérés qui s’exécutent dans les environnements suivants :

  • Machines virtuelles Azure
  • Groupes de machines virtuelles identiques Azure
  • Serveurs avec Azure Arc
  • Clusters Kubernetes autogérés hébergés par Azure ou avec Azure Arc

Services Kubernetes autogérés

Envoyez des métriques à partir de Prometheus auto-géré sur des clusters Kubernetes. Pour plus d’informations sur l’écriture à distance dans les espaces de travail Azure Monitor pour les services Kubernetes, consultez les articles suivants :

Machines virtuelles et groupes de machines virtuelles identiques

Envoyez des données à partir de Prometheus auto-géré sur des machines virtuelles et des groupes de machines virtuelles identiques. Les machines virtuelles peuvent se trouver dans un environnement géré par Azure ou en local. Pour découvrir plus d’informations, consultez Envoyer des métriques Prometheus depuis des machines virtuelles, des groupes de machines virtuelles identiques ou des clusters Kubernetes à un espace de travail Azure Monitor.

Stockage des données

Les métriques Prometheus sont stockées dans un espace de travail Azure Monitor. Les données sont stockées dans une base de données de série chronologique qui peut être interrogée via PromQL. Vous pouvez stocker les données de plusieurs sources de données Prometheus dans un même espace de travail Azure Monitor. Pour plus d’informations, consultez Architecture de l’espace de travail Azure Monitor.

Les espaces de travail Azure Monitor conservent les données pendant 18 mois.

Interrogation et analyse des métriques Prometheus

Les données Prometheus sont récupérées via PromQL. Vous pouvez écrire vos propres requêtes ou utiliser des requêtes de la communauté open source et des tableaux de bord Grafana qui incluent des requêtes PromQL. Pour plus d’informations, consultez Interroger Prometheus sur le site web Prometheus.

Les services Azure suivants permettent d’interroger les métriques Prometheus à partir d’un espace de travail Azure Monitor :

Explorateur de métriques Azure Monitor avec PromQL

Utilisez l’explorateur de métriques avec PromQL (préversion) pour analyser et visualiser les métriques de la plateforme et de Prometheus. L’explorateur de métriques avec PromQL est disponible dans le volet Métriques de l’espace de travail Azure Monitor sur lequel vos métriques Prometheus sont stockées. Pour obtenir plus d’informations, consultez Explorateur de métriques Azure Monitor avec PromQL.

Capture d’écran d’une requête PromQL dans l’explorateur de métriques Azure Monitor.

Classeurs Azure

Créez des graphiques et des tableaux de bord avec le service géré Azure Monitor pour Prometheus en utilisant les classeurs Azure et les requêtes PromQL. Pour plus d’informations, consultez Interroger les métriques Prometheus avec les classeurs Azure.

Intégration de Grafana

Visualisez les métriques Prometheus avec Azure Managed Grafana. Connectez votre espace de travail Azure Monitor à un espace de travail Grafana afin qu’il puisse être utilisé comme source de données dans un tableau de bord Grafana. Vous avez ensuite accès à plusieurs tableaux de bord prédéfinis qui utilisent des métriques Prometheus. Vous avez également la possibilité de créer un nombre quelconque de tableaux de bord personnalisés. Pour plus d’informations, consultez Lier un espace de travail Grafana.

API de requête Prometheus

Utilisez PromQL via l’API REST pour interroger les métriques Prometheus stockées dans un espace de travail Azure Monitor. Pour plus d’informations, consultez Interroger les métriques Prometheus avec l’API et PromQL.

Règles et alertes

Prometheus permet l’enregistrement de règles et de règles d’alerte avec des requêtes PromQL. Le service géré Azure Monitor pour Prometheus déploie automatiquement des règles et des alertes. Les métriques enregistrées par les règles d’enregistrement sont stockées dans l’espace de travail Azure Monitor. Les tableaux de bord ou d’autres règles peuvent ensuite interroger les métriques.

Vous pouvez créer et gérer des règles d’alerte et des règles d’enregistrement à l’aide des groupes de règles du service managé Azure Monitor pour Prometheus. Pour votre cluster AKS, un ensemble de règles d’alerte Prometheus prédéfinies et de règles d’enregistrement vous permet de démarrer rapidement.

Les alertes déclenchées par des règles d’alerte peuvent déclencher des actions ou des notifications, comme définies dans les groupes d’actions configurés pour la règle d’alerte. Vous pouvez également afficher les alertes Prometheus déclenchées et résolues sur le Portail Azure en même temps que d’autres types d’alertes.

Limites et quotas du service

Le service géré Azure Monitor pour Prometheus a des quotas et des limites par défaut pour l’ingestion. Une limitation peut se produire lorsque vous atteignez les limites d’ingestion. Vous pouvez demander une augmentation de ces limites. Pour plus d’informations, consultez Limites du service Azure Monitor.

Pour surveiller et alerter sur vos métriques d’ingestion, consultez Surveiller les métriques d’ingestion de l’espace de travail Azure Monitor.

Limites

Les limitations suivantes s’appliquent au service managé Azure Monitor pour Prometheus :

  • La fréquence minimale pour le scraping et le stockage des métriques est de 1 seconde.
  • Pendant les mises à jour des nœuds, vous pouvez rencontrer des écarts de 1 à 2 minutes dans la collecte de certaines métriques du collecteur au niveau du cluster. Cet écart est dû à une action régulière de Azure Kubernetes Service pour mettre à jour les nœuds de votre cluster. Ce comportement n’affecte pas les règles d’alerte recommandées.
  • Prometheus géré pour les nœuds Windows n’est pas automatiquement activé. Pour activer la surveillance des nœuds et des pods Windows dans vos clusters, consultez Activer la collecte de métriques Windows (préversion).

Respect de la casse

Le service managé Azure Monitor pour Prometheus est un système qui ne respecte pas la casse. Il traite les chaînes, telles que les noms de métriques, les noms d’étiquettes ou les valeurs d’étiquette, comme une même série chronologique si elles diffèrent d’une autre série chronologique uniquement par la casse de la chaîne.

Remarque

Ce comportement est différent de Prometheus open source natif, qui est un système respectant la casse. Les instances Prometheus autogérées s’exécutant dans des machines virtuelles Azure, des groupes de machines virtuelles identiques ou des clusters Azure Kubernetes Service sont des systèmes qui respectent la casse.

Dans le service géré pour Prometheus, les séries chronologiques suivantes sont considérées comme identiques :

diskSize(cluster="eastus", node="node1", filesystem="usr_mnt")
diskSize(cluster="eastus", node="node1", filesystem="usr_MNT")

Les exemples précédents constituent une seule série chronologique dans une base de données de séries chronologiques. Les considérations suivantes s'appliquent :

  • Tous les échantillons ingérés sur ces exemples sont stockés comme s’ils étaient scrapés ou ingérés sur une seule série chronologique.
  • Si les exemples précédents sont ingérés avec le même horodatage, l’un d’eux est supprimé de façon aléatoire.
  • La casse stockée dans la base de données de série chronologique et retournée par une requête est imprévisible. La même série chronologique peut retourner une casse différente à des moments différents.
  • Toute correspondance de nom de métrique ou nom/valeur d’étiquette présente dans la requête est récupérée à partir de la base de données de série chronologique en effectuant une comparaison qui ne respecte pas la casse. S’il existe une correspondance sensible à la casse dans une requête, elle est automatiquement traitée comme une correspondance ne respectant pas la casse dans les comparaisons de chaînes.

Il est recommandé d’utiliser une casse cohérente unique pour produire ou scraper une série chronologique.

Prometheus open source traite les exemples précédents comme deux séries chronologiques différentes. Tous les échantillons scrapés ou ingérés sur ces exemples sont stockés séparément.

Références Prometheus

Voici des liens vers la documentation de Prometheus :