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

Les métriques sont des valeurs mesurables et calculables relatives aux hôtes et aux services ; elles sont stockées en interne par Checkmk dans ce que l'on appelle les bases de données Round-Robin (RRD). Ces métriques sont traitées par le système de graphiques intégré et visualisées à de nombreux endroits dans l'interface Web de Checkmk, par exemple sous forme de Perf-O-Mètres dans la liste des services ou sous forme de graphiques que vous pouvez afficher à partir de la liste des services à l'aide de l'icône de graphique « Icon to display graphs. ». L'interface de visualisation des métriques est basée sur HTML5 et est identique dans les éditions commerciales et dans Checkmk Community. Consultez l'article sur la création de graphiques pour plus de détails à ce sujet.

CEE Parallèlement à la fonctionnalité de création de graphiques intégrée à Checkmk, vous pouvez également vous connecter à des bases de données de métriques externes et envoyer les métriques vers InfluxDB ou Graphite. Comme le transfert est effectué par le Checkmk Micro Core (CMC), cette fonctionnalité n’est disponible que dans les éditions commerciales.

Dans cet article, vous apprendrez comment configurer le transfert des métriques vers InfluxDB et Graphite dans Checkmk.

2. Envoi de métriques vers InfluxDB

InfluxDB logo.

InfluxDB est un système de gestion de base de données (SGBD) open source dédié aux séries chronologiques — et constitue actuellement la solution la plus populaire dans ce domaine. InfluxDB propose une API unifiée avec l’API InfluxDB v2, qui peut notamment être utilisée pour écrire des données de métriques dans la base de données. Checkmk utilise l’API InfluxDB v2 et vous permet non seulement d’envoyer les métriques de Checkmk vers InfluxDB, mais aussi de les stocker de manière appropriée dans la structure existante d’InfluxDB. L’utilisation de l’API simplifie d’une part la configuration de l’envoi des données de métriques et prépare d’autre part Checkmk à de futures extensions.

Tip

La configuration décrite dans ce chapitre s'applique uniquement à la connexion d'un InfluxDB via l'API InfluxDB v2. Checkmk ne prend actuellement pas en charge l'API InfluxDB v3. Si vous utilisez un InfluxDB <= V1.8, configurez-le plutôt comme décrit dans le chapitre sur la connexion à Graphite, car InfluxDB prend en charge le protocole Carbon de Graphite jusqu'à la version V1.8.

2.1. Collecte d'informations

Avant de commencer la configuration dans Checkmk, vous devez obtenir les informations suivantes concernant le système cible InfluxDB que vous souhaitez connecter à Checkmk :

Paramètre Description

Nom d'hôte

Nom (ou adresse IP) du serveur InfluxDB. Il est particulièrement important de saisir le nom DNS si la connexion est chiffrée via HTTPS, car les certificats ne sont pratiquement jamais émis pour des adresses IP.

Numéro de port

Numéro du port TCP par lequel le serveur InfluxDB est accessible. Le port par défaut est 8086. Lors du démarrage avec influxd, un autre port peut être spécifié à l'aide de l'option --http-bind-address.

Protocole

HTTP pour les connexions non chiffrées ou HTTPS pour sécuriser la connexion.

Organisation

Dans InfluxDB, l'organisation est l'espace de travail destiné à plusieurs utilisateurs. L'organisation initiale est demandée lors de la configuration d'InfluxDB. Des organisations supplémentaires peuvent être créées manuellement via l'interface graphique d'InfluxDB.

Compartiments

InfluxDB stocke les données de séries chronologiques dans des conteneurs, appelés buckets . Une période de conservation est notamment définie pour chaque bucket. InfluxDB supprime automatiquement tous les points de données plus anciens que cette période.
Un bucket appartient toujours à une organisation. Le bucket initial est défini en même temps que l'organisation lors de la configuration d'InfluxDB. Des buckets supplémentaires peuvent être créés manuellement.

Jeton

La communication entre Checkmk et InfluxDB s'effectue via l'API InfluxDB v2. InfluxDB utilise des jetons API pour autoriser les requêtes via l'API. Un jeton API appartient à un utilisateur spécifique et identifie les autorisations InfluxDB au sein de l'organisation de cet utilisateur. Les jetons sont créés via l’interface graphique d’InfluxDB, soit avec un accès complet en lecture et en écriture à toutes les ressources au sein d’une organisation (jeton « All Access »), soit avec des droits d’accès sélectionnés à des buckets spécifiques au sein d’une organisation (jeton « Read/Write »). Un jeton peut être copié dans le presse-papiers, ce qui facilite son collage ultérieur lors de la configuration de Checkmk. Le jeton utilisé pour se connecter au serveur Checkmk doit bien sûr disposer des autorisations de lecture et d’écriture pour le bucket en cours de configuration dans Checkmk.

Pour plus de détails, consultez la documentation d'InfluxDB.

Une fois ces informations en main, la configuration dans Checkmk s'effectue en seulement deux opérations simples.

2.2. Connexion de Checkmk à InfluxDB

Ouvrez le menu Configuration et activez le mode Afficher plus — car ce n’est qu’alors que l’option de menu Setup > Exporter > InfluxDB connections sera affichée. Sélectionnez-la pour afficher la liste des connexions InfluxDB existantes. Comme vous n’avez probablement encore rien configuré ici, cette liste sera vide.

Une connexion est indispensable pour envoyer les données. Toutefois, sans règle permettant de sélectionner les informations de métriques, aucune donnée ne sera envoyée.

Commencez donc par créer une nouvelle connexion avec Icon to create a new connection. Add connection :

The general properties of an InfluxDB connection.
L'ID, le titre et la sélection du site suffisent pour les propriétés générales

Dans l'General properties, vous spécifiez l'ID interne et le titre de la connexion, comme d'habitude.

Si d'autres sites sont connectés au site actuel, comme c'est le cas avec une surveillance distribuée, vous pouvez limiter la connexion à des sites spécifiques sous « Site restriction ». Pour ce faire, déplacez d'abord l'entrée « All sites » vers la colonne de gauche, puis déplacez les sites qui doivent recevoir des métriques de la colonne de gauche vers la colonne de droite « Selected ». Les sites qui ne recevront pas de métriques restent alors dans la colonne de gauche.

Nous poursuivons ensuite dans la case suivante avec l'InfluxDB Connection properties :

Setting the InfluxDB-specific connection properties.
Configuration des propriétés spécifiques à InfluxDB

Saisissez ici le premier ensemble de valeurs de paramètres que vous avez compilées dans la section précédente.

Enregistrez la connexion en cliquant sur « Save » et vous reviendrez à la liste des connexions :

List of InfluxDB connections.
Active, inactive, avec ou sans règle ? La liste des connexions affiche la configuration

Dans la liste des connexions, la colonne « Enabled » affiche des informations importantes sur l'état de la connexion. Ne soyez pas surpris de voir trois entrées dans la liste de la capture d'écran ci-dessus : Afin de pouvoir voir tous les symboles en action, nous avons ajouté deux connexions supplémentaires à la liste. Dans la première colonne de « Enabled », vous pouvez voir si la connexion est activée (Icon showing an active connection.) ou désactivée (Icon showing a disabled connection.). Dans la deuxième colonne, vous pouvez voir s'il existe déjà une règle pour la connexion (Button to display the list of rules in the ruleset.) ou non (Button to create a new rule.).

Aucune donnée ne sera transmise via une connexion tant qu’elle n’aura pas été associée à une règle sélectionnant les informations de métriques. Cette règle s’appelle « Send metrics to InfluxDB ». Les icônes de règle sont des boutons et constituent un raccourci vers la création de règles. Pour une connexion associée à une règle, cliquez sur « Button to display the list of rules in the ruleset. » afin d’ouvrir la page de présentation de l’ensemble des règles, qui met en évidence la règle qui s’applique ou s’appliquerait à la connexion. Pour une connexion sans règle, cliquer sur « Button to create a new rule. » vous amène directement à la page de création de règles.

Dans le chapitre suivant, nous décrirons en détail ce qui peut être spécifié dans cette règle.

2.3. Sélection des informations de métriques

Une règle vous permet de déterminer dans Checkmk quelles données sont envoyées au serveur InfluxDB et où elles sont stockées.

L'ensemble de règles « Send metrics to InfluxDB » se trouve dans « Setup > Services > Service monitoring rules » ; vous pouvez y accéder plus rapidement via la recherche dans le menu « Setup », et encore plus rapidement en cliquant dans la liste des connexions :

Rule to select metrics information to send via InfluxDB connection.
La sélection des informations de métriques s'effectue par règle

Dans la boîte de dialogue « Send metrics to InfluxDB », sélectionnez d’abord la connexion créée dans la section précédente, puis spécifiez où les données seront stockées sur le serveur InfluxDB. Saisissez ici le deuxième ensemble d’informations collectées pour le serveur InfluxDB. Utilisez « Organization » pour déterminer quels utilisateurs reçoivent les données, et « Bucket » pour définir la durée de conservation des métriques. La sélection multiple n’est pas possible ; vous ne pouvez donc pas, par exemple, envoyer les métriques vers plusieurs buckets destinés à différentes organisations.

Ci-dessous, vous sélectionnez les données de métriques qui seront envoyées depuis Checkmk vers le serveur InfluxDB. L'option « Metrics of service» est déjà sélectionnée par défaut et permet l'envoi des métriques. Cochez la case « Service state » pour envoyer l'état du service en tant que métrique distincte.

Après avoir activé « Additional values per metric », vous pouvez ajouter un certain nombre de métadonnées aux métriques à des fins d’affichage, par exemple l’état du service (State of service) et l’adresse IP de l’hôte (Thresholds). Notez ici que l’option « Unit » ne fonctionne actuellement que pour les métriques issues de contrôles actifs, si ceux-ci la prennent en charge. La raison en est que seuls les contrôles actifs disposent d’une option permettant de fournir l’unité de mesure et que le CMC n’a pas accès aux autres.

Dans le dernier menu de sélection, « Tags to use », des métadonnées telles que des balises d’hôte ou des étiquettes sont ajoutées aux métriques ; celles-ci sont principalement utilisées pour le filtrage et ont été optimisées à cette fin. Les options « Host name » et « Service name » sélectionnées par défaut sont des entrées obligatoires qui ne peuvent pas être désélectionnées.

Dans InfluxDB, les Additional values per metric sont stockées sous forme de champs et les Tags to use sous forme de balises.

Enfin, validez les modifications pour créer la connexion et créer la ou les règles. En cas de problèmes avec la transmission des métriques, consultez les informations sur le diagnostic des erreurs ci-dessous.

2.4. Affichage des métriques dans InfluxDB

Une fois que les métriques provenant de Checkmk sont arrivées sur le serveur InfluxDB, elles peuvent être affichées dans l'interface graphique d'InfluxDB. À titre d'exemple, l'image suivante montre le graphique de la métrique « total_used », qui indique la quantité de mémoire utilisée :

Display of the used memory metric in the InfluxDB GUI.
Dans l'interface graphique d'InfluxDB, sous le graphique, vous trouverez des listes permettant de sélectionner et de filtrer les données

Remarque : cette métrique se trouve dans Checkmk, au niveau du service « Memory », sous la métrique intitulée « Total used memory ».

3. Envoi de métriques vers Graphite

Graphite-Logo.

Graphite est également un SGBD de séries chronologiques open source bien connu, destiné au stockage, à la récupération, au partage et à la visualisation des métriques. Graphite se compose du démon Carbon, qui attend les données et les stocke dans une base de données, d’où elles sont traitées et affichées sous forme de graphiques à l’aide de l’application web Graphite. Vous pouvez utiliser Checkmk pour transférer les métriques via le protocole en texte clair vers le démon Carbon de Graphite, qui attend les données de ce protocole sur le port 2003. Dans le protocole en texte clair, un enregistrement est structuré de manière très simple au format <metricpath> <value> <timestamp>, où <metricpath> est un identifiant unique séparé par des points.

Contrairement à la connexion InfluxDB, par défaut, toutes les données de métriques sont envoyées dès qu’une connexion Graphite a été activée. Si vous ne le souhaitez pas, vous devez sélectionner les métriques par règle avant d’activer la connexion, puis activer à la fois les règles et la connexion.

3.1. Sélection des informations de métriques

Dans Checkmk, sous « Setup > Services > Service monitoring rules », vous trouverez les deux ensembles de règles « Send host metrics to Graphite » et « Send service metrics to Graphite ». La configuration s’effectue de la même manière pour les métriques d’hôte et de service. Nous vous présentons ici la configuration pour les métriques de service. Vous configurez ensuite les métriques d’hôte de la même manière.

Vous pouvez utiliser la règle « Send service metrics to Graphite » pour sélectionner les valeurs à envoyer avec les métriques :

Rule for selecting the service metrics to send over the Graphite connection.
De même qu’avec Graphite, la sélection des informations de métriques s’effectue par règle

Deuxièmement, vous pouvez limiter l'envoi à certains hôtes et services dans la boîte de dialogue « Conditions ». Étant donné que sans règle restrictive, toutes les données seront envoyées, il est recommandé de créer d'abord une règle qui désactive l'envoi de manière globale en décochant toutes les cases indiquées dans la capture d'écran ci-dessus. Ensuite, créez une règle spécifique avec les informations de métrique souhaitées pour les hôtes et les services dont les métriques doivent être envoyées au serveur Graphite. Placez la règle spécifique avant la règle globale :

List of rules for sending over the Graphite connection.
En plaçant les deux règles dans cet ordre, seules les métriques de service provenant de l'myhost de l'hôte seront envoyées

3.2. Connexion de Checkmk à Graphite

Vous configurez la connexion au serveur Graphite sous Setup > General > Global Settings > Monitoring Core > Send metrics to Graphite. Cliquez là-bas sur « Add new Graphite connection » :

The properties for a Graphite connection.
La connexion Graphite sera créée dans l'Global Settings

Outre les informations évidentes relatives au serveur Graphite (le nom et le numéro de port pour le protocole Carbon en texte clair), vous pouvez également utiliser Optional variable prefix pour configurer un préfixe à ajouter à chaque nom d'hôte, par exemple pour imposer des noms uniques. Checkmk définit le chemin de métrique pour le protocole en texte clair sur <host>.<service>.<metric>.

Une activation des modifications apportées aux règles et à la connexion finalise la configuration de Graphite.

3.3. Affichage des métriques dans Graphite

Dans l'interface graphique de Graphite, vous pouvez également consulter les métriques reçues de Checkmk. L'image suivante montre le graphique de la métrique total_used que nous avons déjà présentée ci-dessus à titre d'exemple dans l'interface graphique d'InfluxDB :

Displaying the metric for memory used in the Graphite GUI.
Dans l'interface graphique de Graphite, la sélection s'effectue dans un panneau de navigation situé à gauche du graphique

4. Diagnostic des erreurs

Si les métriques n'arrivent pas là où vous vous y attendiez, vous pouvez trouver les informations de diagnostic de votre site dans le fichier ~/var/log/cmc.log — le fichier journal de Checkmk Micro Core.

L'exemple suivant montre les messages qui s'affichent si le compartiment configuré dans Checkmk n'existe pas sur le serveur InfluxDB :

~/var/log/cmc.log
2022-01-10 11:41:35 [5] [influxdb https://myinfluxdb.example.com:8086] Successfully initiated connection
2022-01-10 11:41:36 [5] [influxdb https://myinfluxdb.example.com:8086] Successfully connected
2022-01-10 11:41:36 [3] [influxdb https://myinfluxdb.example.com:8086] POST [404] {"code": "not found", "message": "bucket \"my_bucket\" not found"}
2022-01-10 11:41:36 [5] [influxdb https://myinfluxdb.example.com:8086] Closing connection

L'exemple suivant montre les messages reçus en cas d'échec de la connexion au serveur Graphite :

~/var/log/cmc.log
2021-12-15 17:33:33 [5] [carbon 10.0.0.5:2003] Successfully initiated connection
2021-12-15 17:33:33 [4] [carbon 10.0.0.5:2003] Connection failed: Connection refused
2021-12-15 17:33:33 [5] [carbon 10.0.0.5:2003] Closing connection

Dans de telles situations, le Checkmk Micro Core continue d'essayer de se connecter de manière autonome.

Important : pour des raisons de performances, les métriques générées pendant une période où il n'y a pas de connexion au système cible ne sont pas mises en cache, mais sont perdues (ou ne sont alors disponibles que dans les RRD de Checkmk).

Remarque : si les messages du journal ne sont pas suffisamment explicites pour vous, vous pouvez modifier les valeurs par défaut du niveau de journalisation sous Setup > General > Global Settings > Monitoring Core > Logging of the core. Vous y trouverez des entrées pour la journalisation d'InfluxDB (InfluxDB processing) et de Graphite (Carbon connections).


Last modified: Mon, 19 Jan 2026 12:48:34 GMT via commit e5e96d0fa
Sur cette page