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

Grâce à son système de graphiques intégré, Checkmk dispose d’un outil puissant pour l’enregistrement et la visualisation des métriques. Il peut néanmoins s’avérer utile de réaliser une connexion avec Grafana en tant que système de graphiques externe, par exemple lorsque vous utilisez déjà Grafana et que vous souhaitez fusionner les données de Checkmk avec celles d’autres systèmes dans des tableaux de bord partagés.
Dans toutes les versions de Grafana actuellement maintenues, il est possible d’accéder directement à Checkmk en tant que source de données, quelle que soit l’édition. Cela vous permet d’afficher des métriques individuelles ou même des graphiques entiers qui ont déjà été prédéfinis dans Checkmk. De plus, vous avez la possibilité de créer dynamiquement vos propres graphiques en utilisant des expressions régulières pour définir un groupe d’hôtes et de services à partir desquels des métriques spécifiques doivent être incluses dans le graphique.
Cet article décrit comment récupérer et afficher vos métriques Checkmk dans Grafana. Vous trouverez des instructions détaillées sur l'utilisation et la configuration de Grafana dans la documentation de Grafana Labs.
Le plugin Grafana a été développé indépendamment de Checkmk et est maintenu dans son propre dépôt GitHub. Cet article décrit comment configurer le plugin dans sa version 4, qui fonctionne avec les versions 2.2.0 à 2.4.0 de Checkmk. Pour connaître précisément quelles versions du plugin sont compatibles avec quelles versions de Checkmk et de Grafana, veuillez vous reporter au fichier Readme du dépôt GitHub. Le plugin étant installé dans Grafana, il n'est pas judicieux de le fournir avec Checkmk.
2. Installation du plugin dans Grafana
Selon le type d'installation de votre serveur Grafana et votre édition de Checkmk, il existe différentes méthodes pour installer le plugin. La seule restriction ici est que les utilisateurs de l'offre Grafana Cloud doivent activer le plugin via la collection officielle de plugins Grafana.
Pour les installations sur site de Grafana, vous pouvez également activer le plugin à partir de la collection officielle de plugins Grafana via la ligne de commande. Vous avez également la possibilité de procéder à l'installation à partir d'une archive zip. Cela vous permet également de tester de nouvelles versions si celles-ci n'ont pas encore été ajoutées à la collection officielle de plugins Grafana.
Les méthodes d'installation présentées ici ont été testées avec Grafana 12.1. Avec des versions plus anciennes, tous les types d'installation ne sont pas forcément disponibles, ou la procédure peut différer.
2.1. Installation depuis l'interface graphique de Grafana (Grafana Cloud et votre propre serveur)
Que ce soit pour Grafana Cloud ou pour un déploiement sur votre propre serveur, vous pouvez installer la source de données Checkmk directement depuis l'interface graphique de Grafana.
Accédez à Home > Connections > Add new connection, puis saisissez Checkmk dans le champ de recherche.
Vous verrez alors s’afficher une liste de résultats comprenant une seule entrée qui vous mènera à la page d’aperçu du plugin.
Vous y trouverez à nouveau une description détaillée de la source de données Checkmk et pourrez la rendre disponible dans votre instance Grafana en cliquant sur « Install ».
Les options disponibles vont alors changer, et vous aurez la possibilité de cliquer sur le nouveau lien « Add new data source » pour configurer une connexion à votre instance Checkmk.
2.2. Installation via la ligne de commande (serveur Grafana propre)
Si vous exécutez Grafana sur votre propre serveur, vous pouvez l'installer à partir de la collection de plugins Grafana via la ligne de commande. Les instructions indiquées s'appliquent à Grafana sous Linux. Procédez de la même manière sur les autres plateformes.
Redémarrez le service du serveur Grafana :
Le plugin sera alors disponible dans l'interface Grafana et pourra ainsi être activé et configuré.
2.3. Installation à partir d'une archive zip (serveur Grafana propre)
Sur la page « Releases » du dépôt GitHub, vous trouverez l'archive zip signée « checkmk-cloud-datasource-X.Y.Z.zip ».
La nomenclature fait toujours référence à l'ancienne division du plugin en deux parties (jusqu'à la version 3.x du plugin), mais avec la version 4.0, la restriction à Checkmk Ultimate a été supprimée et le plugin signé peut être utilisé avec toutes les éditions de Checkmk.
Si vous avez déjà utilisé le plugin Grafana avec Checkmk Community ou Checkmk Pro en version 3.x, cela signifie que pour passer à la version 4.x,
vous devez d'abord désinstaller l'ancien plugin tribe-29-checkmk-datasource :

Au lieu d'utiliser le navigateur, vous pouvez bien sûr également charger le fichier directement via la ligne de commande.
Notez que vous devez connaître la version actuelle pour ce faire – dans l'exemple suivant, nous enregistrons la version dans la variable $plugvers.
Ici aussi, les instructions indiquées se réfèrent à Grafana sous Linux.
Procédez de la même manière sur les autres plateformes.
Décompressez maintenant l'archive zip :
Créez un répertoire de plugins s'il n'existe pas encore, et désignez l'utilisateur Linux sous l'identifiant duquel les processus Grafana s'exécutent (généralement grafana) comme propriétaire du répertoire :
Déplacez le dossier obtenu vers le répertoire des plugins Grafana,
qui se trouve généralement à l'emplacement /var/lib/grafana/plugins/ :
Modifiez le propriétaire pour l'utilisateur Grafana :
L'installation via le clonage de l'archive Git (comme décrit dans les versions précédentes de cet article) n'est plus possible. Si vous souhaitez contribuer au plugin, veuillez consulter les Notes à l'intention des développeurs.
3. Création d'un utilisateur Grafana dans Checkmk
La connexion à Grafana nécessite un utilisateur côté Checkmk disposant des autorisations suffisantes et authentifié via un mot de passe d'automatisation (mot de passe d'automatisation) plutôt que par un mot de passe classique. Les utilisateurs « guest » ou « de supervision » standard ne suffisent pas, et pour des raisons de sécurité, vous ne devez pas utiliser un administrateur.
La manière la plus simple de créer un utilisateur « adapté » consiste à cloner le rôle de l'utilisateur invité (guest) et à lui attribuer l'autorisation supplémentaire « User management » (autoriser l'accès en lecture aux informations utilisateur).
Si vous basez votre rôle d'utilisateur Grafana sur un autre rôle, assurez-vous que l'autorisation « See all host and services » est définie en plus de « User management ».
Une fois le rôle créé, créez un ou plusieurs utilisateurs Grafana avec un mot de passe d'automatisation (mot de passe d'automatisation). Vous pouvez restreindre davantage les autorisations attribuées au rôle ultérieurement, par exemple si aucun accès à BI ou à la Event Console n'est requis.
4. Configuration du plugin
Une fois les fichiers nécessaires installés, vous pouvez activer le plugin dans Grafana. Pour ce faire, accédez à la configuration et rendez-vous dans « Home > Connections > Data sources ». Vous pouvez y ajouter une nouvelle source de données à l'aide du bouton « Add data source ».
Vous accédez alors à un aperçu des sources de données disponibles.
Vous trouverez l'entrée correspondant à Checkmk au bas de la catégorie « Others » ou simplement en saisissant « Checkmk » dans le champ de recherche à cet endroit.
Le modèle de cette source de données est assez simple. Saisissez l'URL de votre site, le type de votre édition et l'utilisateur que vous venez de créer pour Grafana.
Si vous utilisez Checkmk dans un environnement distribué, saisissez ici l'URL de votre instance centrale. |

Si vous souhaitez connecter plusieurs instances Checkmk, vous pouvez, si vous le souhaitez, attribuer un nom unique à chaque connexion.
Sinon, conservez simplement la valeur par défaut Checkmk ou Checkmk for Cloud Edition.
Une fois que vous aurez enregistré la connexion à l'aide du bouton « Save & test », celle-ci sera disponible en tant que source de données dans Grafana et vous pourrez configurer vos premiers graphiques.
5. Création de graphiques
5.1. Création d'un tableau de bord vierge
Sous «Home > Dashboards», vous trouverez un menu déroulant marqué d'un signe «+». Cliquez sur «New dashboard» pour créer un nouveau tableau de bord :

5.2. Affichage d'une métrique d'ordinateur hôte unique
Le tableau de bord le plus simple affiche un seul graphique pour le service d’un ordinateur hôte. Il peut également s’agir de la métrique issue d’un check local pour laquelle il n’existe pas de graphiques prêts à l’emploi. Créez une nouvelle visualisation dans un tableau de bord existant ou dans celui que vous venez de créer. Sélectionnez d’abord « Add visualization » ici :

La création d’une visualisation vous amène à la sélection de la source de données. Après avoir sélectionné « Checkmk », vous vous trouvez directement en mode édition de la requête pour le panneau nouvellement créé. Un panneau est un conteneur pour une visualisation.
L'accès aux données à visualiser diffère légèrement entre
Checkmk Community et les éditions commerciales :
Dans Checkmk Community, vous travaillez avec des menus prédéfinis — pour l'instance, le nom de domaine, le service, etc.
Dans les éditions commerciales, vous avez la possibilité de définir des cascades de filtres.
Cela permet une sélection très détaillée, notamment à l'aide d'expressions régulières.
L'exemple simple suivant a été choisi afin que vous puissiez le parcourir avec toutes les éditions.
Sélectionnez d’abord l’Site, puis filtrez pour un Hostname dans la supervision. Pour le premier test, utilisez n’importe quel ordinateur hôte utilisant l’agent Windows ou Linux. Sélectionnez Check_MK comme Service. Définissez le type d’Aggregation sur Maximum. L’Graph type disponible à la sélection est Single metric ou Predefined graph : Predefined graphsrécupère des métriques de Checkmk, qui peuvent également contenir des graphiques combinés. Nos captures d’écran ci-dessous montrent l’Single metric, qui contient le temps d’exécution total de l’agent (Time spent waiting for Checkmk agent).


Grafana affiche directement le résultat. Le bouton «Apply» vous permet d'appliquer le graphique sans enregistrer le tableau de bord. Avec «Save», vous êtes invité à saisir un titre pour le nouveau tableau de bord (Dashboard) et pouvez ensuite enregistrer le tableau de bord nouvellement créé.

5.3. Affichage d’un graphique prédéfini de Checkmk
Les développeurs de Checkmk ont déjà regroupé de nombreuses métriques connexes dans des graphiques courants afin de permettre aux utilisateurs d’avoir plus facilement un aperçu des différents aspects d’une même ressource. Vous pouvez afficher les métriques d’un tel graphique prêt à l’emploi directement dans Grafana.
La procédure est initialement la même que celle expliquée dans la section précédente. Toutefois, pour terminer le processus, sélectionnez l'entrée « Graph type » (Predefined graph) et l'Predefined graph pour le service à utiliser.
Si vous recevez un message d'erreur indiquant que la sélection de métriques combinées comportant plus de 200 éléments n'est pas autorisée, utilisez des filtres supplémentaires pour restreindre la sélection. En cas de doute, placez les filtres qui limiteront considérablement le résultat en tête de la liste.

Une fois que vous êtes satisfait de votre sélection, cliquez sur le bouton « Apply ». Le graphique sera désormais disponible dans le tableau de bord sélectionné.

5.4. Création de graphiques complexes
En particulier dans un cluster dynamique, vous souhaiterez souvent pouvoir suivre l'évolution complète d'une métrique sur l'ensemble des ordinateurs hôtes participants sans avoir à personnaliser un graphique à chaque fois qu'un nouveau nœud est ajouté ou supprimé. Pour ce faire, il existe différentes options permettant d'adapter dynamiquement les graphiques.
La première option consiste à filtrer par Host Labels ou Host Tags au lieu de sélectionner des ordinateurs hôtes individuels.
Une autre option consiste à utiliser des expressions régulières.
Vous pouvez appliquer des expressions régulières aux ordinateurs hôtes ou aux services.
Dans l’exemple suivant, filesystem saisit tous les services contenant filesystem, quel que soit le nombre de systèmes de fichiers montés par un ordinateur hôte.

Avec filesystem.*nvme, vous limiteriez la sélection à tous les systèmes de fichiers sur des disques NVMe, quel que soit le type de système de fichiers utilisé, car la partie de la chaîne entre filesystem et nvme peut être arbitraire.
En plus des options de filtrage étendues, utilisez Aggregation pour déterminer l’affichage des métriques dans le graphique et Graph pour déterminer quel graphique doit être utilisé comme référence. Notez que les métriques d’un ordinateur hôte/service ne s’affichent que s’il dispose également du graphique sélectionné. Un graphique pourrait alors ressembler à ceci, par exemple :

5.5. Renommer à l'aide d'expressions régulières
Dans le mode d’édition de chaque panneau, vous trouverez un onglet « Transform ».
Vous pouvez utiliser l’élément « Rename by regex » disponible ici pour réorganiser les noms des métriques ou supprimer les informations qui ne sont pas nécessaires.
Notre exemple suivant recherche deux groupes de caractères séparés par une virgule suivie d’un espace, les permute et place explicitement « Service » et « Host » au début :

Les variables $1 et $2 correspondent aux chaînes « capturées » dans la ligne ci-dessus (groupes de correspondance ou groupes de capture).
Grafana permet également d’utiliser des groupes de correspondance imbriqués.
La section correspondante de l’article sur les expressions régulières fournit un aperçu des possibilités offertes par celles-ci.
6. Améliorer la flexibilité des graphiques à l'aide de variables
Vous pouvez utiliser des variables pour ajouter des graphiques de manière flexible aux tableaux de bord. Cela vous permet de déterminer l'hôte d'une métrique spécifique via un menu déroulant ou d'utiliser des variables pour ajouter simultanément des graphiques correspondant à plusieurs ordinateurs hôtes à un tableau de bord. Cet article ne peut et ne doit pas remplacer la documentation de Grafana. Notre objectif premier est ici de vous fournir un aperçu des applications possibles et une introduction au thème.
Les variables peuvent être créées à partir de requêtes. Dans ce cas, vous pouvez filtrer par instances, ordinateurs hôtes ou services. Il est également possible de définir des quantités ou des champs de texte libre, ce qui vous permet de créer un nombre illimité de filtres.
6.1. Création de variables
Chaque variable est une propriété d’un tableau de bord. Elle doit être créée dans les paramètres du tableau de bord et ne peut ensuite être utilisée que dans ce tableau de bord. Comme la requête nécessite la configuration la plus complète, nous vous en montrerons l’utilisation dans notre exemple.
Les propriétés pertinentes pour une variable sont son type et son nom ; toutes les autres propriétés ne servent qu’à clarifier l’affichage dans le tableau de bord.
Le nom doit permettre de différencier les variables.
Ainsi, si vous prévoyez d’utiliser plusieurs variables pour sélectionner des ordinateurs hôtes provenant de différents sous-ensembles, utilisez un nom qui fait référence à cet ensemble plutôt que « host » comme dans l’exemple, par exemple « host_from_linuxservers ».

host dans les propriétés du tableau de bordLors de la sélection d'une source de données, assurez-vous qu'une connexion Checkmk est sélectionnée. Vous pouvez restreindre davantage le type d'objet sélectionné, par exemple à l'aide d'expressions régulières. Les filtres utilisés sont évalués sur le serveur Checkmk. En revanche, les champs suivants Regex et Sort sont évalués par Grafana.

Les deux cases à cocher pour Selection options au bas de la page peuvent être utilisées ultérieurement, selon vos besoins. Vous pouvez modifier ces paramètres à tout moment si nécessaire ; pour le premier test, laissez les deux sur leur valeur par défaut (vide). Enregistrez les variables à l'aide de Save dashboard une fois tous les paramètres définis.
6.2. Utilisation des variables pour les graphiques
Vous pouvez désormais saisir les variables attribuées dans les champs appropriés pour créer un graphique flexible. Les variables peuvent également être utilisées dans le titre du graphique.

Une liste déroulante pour chaque variable s'affiche dans le tableau de bord ; vous pouvez l'utiliser pour définir les valeurs de variable (ordinateurs hôtes, services…) que vous souhaitez afficher sur le tableau de bord. Si vous avez activé la sélection multiple, vous pouvez définir l'option « Repeat by variable » dans les paramètres du panneau afin d'afficher le panneau pour chaque valeur de variable sélectionnée.

7. Fichiers et répertoires
Les fichiers et répertoires suivants sont pertinents sur un serveur Grafana auto-hébergé. Toutes les informations concernent les serveurs Linux et l'installation à partir des paquets fournis par Grafana. Des chemins d'accès différents peuvent s'appliquer pour d'autres systèmes d'exploitation ou pour les installations à partir du code source.
| Chemin d'accès | Description |
|---|---|
|
C'est ici que Grafana recherche les (nouveaux) plugins. Chaque plugin dispose de son propre sous-répertoire. Le plugin de Checkmk doit donc être placé ici. |
|
Répertoire de configuration de Grafana. |
|
Fichier de configuration central de Grafana. C'est ici que vous définissez les plugins non signés que vous autorisez. |
