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. Souvent utilisé dans les environnements Kubernetes, il permet de surveiller et d’alerter sur les performances de l’infrastructure et des charges de travail.

Utilisez 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, où vous pouvez analyser et visualiser les données en utilisant Metrics Explorer avec PromQL et Azure Managed Grafana.

Important

Géré et hébergé par Azure Monitor, le service Prometheus vise à stocker des informations sur l’intégrité des services des machines et applications client. Il n’est pas destiné au stockage de données classées comme Informations d’identification personnelles (PII) ou Informations d’identification des utilisateurs finaux (EUII). Nous recommandons vivement de ne pas envoyer d’informations sensibles (noms d’utilisateur, numéros de carte de crédit, etc.) dans les champs du service Prometheus géré par Azure Monitor, comme les noms de métriques, les noms d’étiquettes ou les valeurs d’étiquette.

Service géré Azure Monitor 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 Azure Kubernetes Service. Cela vous permet de vous concentrer sur la surveillance de vos applications et infrastructures.

En tant que service complètement managé, le service géré Azure Monitor pour Prometheus déploie automatiquement Prometheus dans AKS ou Kubernetes avec ARC. Ce service assure une haute disponibilité, des garanties SLA et des mises à jour logicielles automatiques. Le service fournit un magasin de métriques hautement évolutif, avec une conservation des données allant 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. Il s’intègre en mode natif à 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 géré Azure Monitor pour Prometheus collecte des données à partir des services Azure Kubernetes :

  • Azure Kubernetes Service (AKS)
  • Kubernetes compatible 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. Une fois cet espace de travail créé, vous pouvez 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 Prometheus et utiliser l’écriture à distance pour stocker les métriques dans un espace de travail Azure Monitor.

L’écriture à distance 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 Arc
  • Clusters Kubernetes autogérés hébergés par Azure ou avec 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 plus d’informations, consultez l’article Envoyer des métriques Prometheus de machines virtuelles à 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 avec le langage de requête Prometheus (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 Vue d’ensemble de l’espace de travail Azure Monitor.

Les données sont conservées dans l’espace de travail Azure Monitor pendant 18 mois.

Interroger et analyser les métriques Prometheus

Les données Prometheus sont récupérées avec le langage de requête Prometheus (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. Consultez le projet Prometheus.

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

Azure Monitor Metrics Explorer avec PromQL

Metrics Explorer avec PromQL permet d’analyser et de visualiser les métriques de la plateforme et de Prometheus. Metrics Explorer est compatible avec les métriques PromQL pour Prometheus. Metrics Explorer Azure Monitor avec PromQL (préversion) est disponible dans l’élément de menu Métriques de l’espace de travail Azure Monitor sur lequel vous conservez vos métriques Prometheus. Pour obtenir plus d’informations, consultez Metrics Explorer avec PromQL.

Capture d’écran montrant une requête PromQL dans Metrics Explorer.

Classeurs Azure

Créez des graphiques et des tableaux de bord avec le service géré Azure Monitor pour Prometheus en utilisant Azure Workbooks 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, et la possibilité de créer un nombre quelconque de tableaux de bord personnalisés. Pour plus d’informations, consultezAssocier un espace de travail Grafana à un espace de travail Azure Monitor.

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 API de requête Prometheus.

Règles et alertes

Prometheus permet l’enregistrement de règles et de règles d’alerte avec les requêtes PromQL. Les règles et les alertes sont automatiquement déployées sur le service géré Azure Monitor pour Prometheus. Les métriques enregistrées par les règles d’enregistrement sont stockées dans l’espace de travail Azure Monitor. Elles peuvent être interrogées par un tableau de bord ou d’autres règles. Les règles d’alerte et les règles d’enregistrement peuvent être créées et gérées à l’aide de groupes de règles Prometheus managés Azure. Pour votre cluster AKS, un ensemble de règles d’alerte Prometheus prédéfinies et de règles d’enregistrement est fourni pour permettre un démarrage rapide facile.

Les alertes déclenchées par des règles d’alerte peuvent déclencher des actions ou des notifications, comme défini 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 dans 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 obtenir plus d’informations sur les limites de métriques Prometheus, 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.

Limitations/Problèmes connus : 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 certaines collections de métriques de notre 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 est attendu et se produit en raison de la mise à jour du nœud sur lequel il s’exécute. Les règles d’alerte recommandées ne sont pas affectées par ce comportement.
  • Prometheus géré pour les nœuds Windows n’est pas automatiquement activé. Pour activer la surveillance des nœuds et des pods Windows de vos clusters, consultez Surveiller les nœuds et les pods de vos clusters.

Respect de la casse

Prometheus managé par Azure 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 les mêmes séries chronologiques si elles diffèrent d’une autre série chronologique uniquement par le cas de la chaîne.

Remarque

Ce comportement est différent de l’open source natif Prometheus, 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 AKS (Azure Kubernetes Service) sont des systèmes qui respectent la casse.

Dans Prometheus managé par Azure, les séries chronologiques suivantes sont considérées comme les mêmes :

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

Les exemples ci-dessus constituent une seule série chronologique dans une base de données de séries chronologiques.

  • Tous les échantillons ingérés sur eux sont stockés comme s’ils étaient scrapés/ingérés contre 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. Une casse différente peut être retournée à différents moments pour la même série chronologique.
  • 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 lors de comparaisons de chaînes.

Il est recommandé de s’assurer qu’une série chronologique est produite ou récupérée à l’aide d’un cas cohérent unique.

Dans Prometheus open source, les séries chronologiques ci-dessus sont traitées comme deux séries chronologiques distinctes. Tous les échantillons scrapés/ingérés sur eux sont stockés séparément.

Références Prometheus

Voici des liens vers de la documentation Prometheus.

Étapes suivantes