Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introduction

1.1. Contexte et motivation

Vous vous demandez peut-être pourquoi vous devriez intégrer Prometheus à Checkmk — c'est pourquoi nous tenons à préciser un point important à ce stade : Notre intégration de Prometheus s'adresse à tous nos utilisateurs qui utilisent déjà Prometheus. En intégrant Prometheus à Checkmk, nous comblons le fossé qui s'est creusé afin que vous n'ayez pas à vérifier en permanence deux systèmes de supervision.

Cela vous permet de corréler les données des deux systèmes, d’accélérer l’analyse des erreurs et, dans le même temps, de faciliter la communication entre les utilisateurs de Checkmk et de Prometheus. Checkmk reste ainsi votre « tableau de bord unique ».

Enfin, revenons au contexte

L’un des avantages secondaires les plus appréciables de cette intégration est que vos métriques provenant de Prometheus bénéficieront probablement d’un contexte pertinent grâce à Checkmk. Par exemple, alors que Prometheus vous indique correctement la quantité de mémoire principale utilisée, vous n’avez pas besoin d’effectuer d’étapes manuelles supplémentaires dans Checkmk pour déterminer quelle part de la mémoire totale disponible cela représente. Aussi banal que puisse paraître cet exemple, il montre en quoi Checkmk facilite la supervision — même dans les moindres détails.

1.2. Exportateur ou PromQL

L'intégration des exportateurs les plus importants pour Prometheus est assurée par un agent spécial. Les exportateurs suivants pour Prometheus sont disponibles :

Si nous ne prenons pas en charge l’exportateur dont vous avez besoin, les utilisateurs expérimentés de Prometheus ont également la possibilité d’envoyer des requêtes personnalisées directement à Prometheus via Checkmk. Cette opération s’effectue à l’aide du langage de requête propre à Prometheus, PromQL.

2. Configuration de l'intégration

2.1. Création d'un ordinateur hôte

Étant donné que le concept d’hôtes n’existe tout simplement pas dans Prometheus, commencez par créer un emplacement qui rassemble les métriques souhaitées. Cet hôte constitue le point de contact central pour l’agent spécial, qui se charge ensuite de distribuer les données transmises aux hôtes appropriés dans Checkmk. Pour ce faire, créez un nouvel hôte à l’aide de Setup > Hosts > Hosts > Add host.

prometheus hostname

Si le nom de domaine spécifié ne peut pas être résolu par le serveur Checkmk, saisissez l'adresse IP sous laquelle le serveur Prometheus est joignable.

Effectuez tous les autres réglages adaptés à votre environnement et confirmez votre sélection en cliquant sur « Save & view folder ».

2.2. Création d'une règle pour Prometheus

Avant que Checkmk puisse trouver les métriques de Prometheus, vous devez d’abord configurer l’agent spécial à l’aide du jeu de règles « Prometheus ». Vous pouvez y accéder via Setup > Agents > VM, cloud, container. Plusieurs options vous permettent de personnaliser la connexion à l’interface côté client de votre serveur Prometheus, quel que soit l’exportateur que vous souhaitez utiliser.

  • URL server address : Indiquez ici l'URL de votre serveur Prometheus, y compris tous les ports nécessaires. N'indiquez pas le protocole ici, car il peut être sélectionné ci-dessous.

  • Authentication : Si un login est requis, saisissez ici les données d'accès.

  • Protocol : Après l'installation, l'interface côté client est accessible via HTTP. Si vous avez sécurisé l'accès avec HTTPS, modifiez le protocole ici en conséquence.

Vous pouvez voir les valeurs par défaut dans la capture d'écran suivante :

prometheus connection details

Intégration à l'aide de Node Exporter

Si, par exemple, vous souhaitez désormais intégrer les composants matériels d’un « Scrape Targets » de Prometheus, utilisez Node Exporter. Sélectionnez « Add new Scrape Target », puis, dans le menu déroulant qui s’ouvre, sélectionnez « Node Exporter » :

prometheus ruleset exporter

Vous pouvez ici sélectionner les instances de matériel ou de système d'exploitation que le Node Exporter doit interroger. Vous avez toujours la possibilité de désélectionner des informations si vous ne souhaitez pas les récupérer. Les services ainsi créés utilisent les mêmes plugins de supervision que ceux utilisés pour les autres ordinateurs hôtes Linux. Cela signifie que leur comportement est identique à celui que vous connaissez déjà ; vous pouvez donc rapidement configurer des valeurs seuil ou travailler avec des graphiques sans avoir à vous adapter à quelque chose de nouveau.

Normalement, l'agent tentera d'attribuer automatiquement les données aux ordinateurs hôtes dans Checkmk, et de même pour l'ordinateur hôte dans Checkmk qui récupère les données. Toutefois, si ni l'adresse IP, ni le FQDN, ni localhost ne sont présents dans les données du serveur Prometheus, utilisez l'option « Explicitly map Node Exporter host » pour spécifier quel ordinateur hôte issu des données du serveur Prometheus doit être attribué à l'ordinateur hôte Prometheus dans Checkmk.

Intégration à l'aide de cAdvisor

L'exportateur cAdvisor permet la supervision des environnements Docker et renvoie des métriques.

Via le menu « Entity level used to create Checkmk piggyback hosts », vous pouvez déterminer si et comment les données de Prometheus doivent être collectées sous une forme déjà agrégée. Vous pouvez choisir parmi les trois options suivantes :

  • Container - Display the information on container level

  • Pod - Display the information for pod level

  • Both - Display the information for both, pod and container, levels

Sélectionnez soit « Both » (Docker - Nom d'ordinateur hôte par défaut), soit « Container » (Docker - Nom d'ordinateur hôte personnalisé), et définissez également le nom sous lequel les ordinateurs hôtes sont créés pour vos conteneurs. Les trois options suivantes sont disponibles pour la dénomination. L'option « Short » (Nom d'ordinateur hôte par défaut) est l'option par défaut :

  • Short - Use the first 12 characters of the docker container ID

  • Long - Use the full docker container ID

  • Name - Use the name of the container

prometheus cadvisor names

Notez que votre sélection ici a une incidence sur la création et la suppression automatiques des ordinateurs hôtes en fonction de votre gestion dynamique des hôtes.

Avec l'option « Monitor namespaces matching », vous avez la possibilité de limiter le nombre d'objets sous supervision. Tous les espaces de nommage qui ne sont pas couverts par les expressions régulières seront alors ignorés.

Intégration via PromQL

Comme déjà mentionné, à l'aide de l'agent spécial, il est également possible d'envoyer des requêtes à vos serveurs Prometheus via PromQL. Sélectionnez « Service creation using PromQL queries > Add new Service ». Utilisez le champ « Service name » pour déterminer comment le nouveau service doit être nommé dans Checkmk.

Sélectionnez ensuite « Add new PromQL query » et utilisez le champ « Metric label » pour spécifier le nom de la métrique à importer dans Checkmk. Saisissez maintenant votre requête dans le champ « PromQL query ». Il est important que cette requête ne renvoie qu’une seule valeur.

prometheus ruleset promql

Dans cet exemple, Prometheus est interrogé sur le nombre de processus en cours d’exécution et bloqués. Dans Checkmk, ces processus et les deux métriques — Running et Blocked — sont ensuite combinés dans un service appelé Processes.

Vous pouvez également attribuer des valeurs seuils à ces métriques. Pour ce faire, activez « Metric levels », puis choisissez entre « Lower levels » ou « Upper levels ». Notez que ces options spécifient toujours des nombres à virgule flottante, mais qu’elles font bien sûr également référence à des métriques qui ne renvoient que des nombres entiers.

Attribution d'une règle à l'ordinateur hôte Prometheus

Enfin, attribuez explicitement cette règle à l'ordinateur hôte que vous venez de créer et confirmez avec Save.

prometheus ruleset explicit host

2.3. Reconnaissance du service

Maintenant que vous avez configuré l'agent spécial, il est temps d'exécuter une reconnaissance du service sur l'hôte Prometheus.

prometheus discovery

3. Gestion dynamique des hôtes

3.1. Configuration générale

CEE La supervision des clusters Kubernetes est sans doute l’une des tâches les plus courantes effectuées par Prometheus. Afin d’assurer l’intégration des conteneurs, dont la durée de vie est parfois très courte, qui sont orchestrés via Kubernetes et surveillés avec Prometheus — y compris dans Checkmk sans grand effort —, une gestion dynamique des hôtes peut être mise en place dans les éditions commerciales. Les données provenant des conteneurs individuels sont transmises à Checkmk sous forme de données ferroutées.

Créez maintenant une nouvelle connexion à l'aide de Setup > Hosts > Hosts > Dynamic host management > Add connection, sélectionnez « Piggyback data » comme type de connexion, puis utilisez Add new element pour définir les conditions dans lesquelles de nouveaux ordinateurs hôtes doivent être créés dynamiquement.

Demandez-vous s’il est nécessaire, dans votre environnement, de supprimer à nouveau dynamiquement les ordinateurs hôtes lorsque plus aucune donnée n’arrive à Checkmk via le mécanisme de ferroutage. Configurez l’option « Delete vanished hosts » en conséquence.

3.2. Particularité dans les interactions avec cAdvisor

Les conteneurs reçoivent généralement un nouvel ID lorsqu’ils sont redémarrés. Dans Checkmk, les métriques de l’ordinateur hôte portant l’ancien ID ne sont pas automatiquement transférées vers le nouvel ID. Dans la plupart des cas, cela n’aurait aucun sens. Dans le cas des conteneurs, cependant, cela peut s’avérer très utile, comme le montre l’exemple ci-dessus.

Si les conteneurs sont simplement redémarrés, vous ne souhaitez probablement pas perdre leur historique. Pour ce faire, ne créez pas les conteneurs sous leurs ID, mais sous leurs noms à l'aide de l'option « Name - Use the name of the container » dans la règle Prometheus.

De cette manière, grâce à l'option « Delete vanished hosts » de la gestion dynamique des hôtes, vous pouvez toujours supprimer les conteneurs qui n'existent plus, sans craindre que leur historique ne soit également perdu. Au contraire, celui-ci sera conservé — grâce à l'utilisation du même nom de conteneur — même s'il s'agit en réalité d'un conteneur différent utilisant ce même nom.


Last modified: Tue, 19 Aug 2025 12:03:40 GMT via commit f16bb5a82
Sur cette page