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. L'agent Windows
Depuis ses débuts, la supervision des serveurs Windows a toujours été l’une des tâches les plus importantes assurées par Checkmk. Comme pour tous les autres systèmes d’exploitation serveur, Checkmk propose donc également son propre agent pour Windows, un programme de l’agent à la fois minimaliste et sécurisé.
Avec la sortie de la version 2.1.0 de Checkmk, un nouveau composant, l’Agent Controller, a été ajouté à ce programme de l'agent. L’Agent Controller se situe en amont du programme de l'agent, l’interroge et communique avec le serveur Checkmk à la place de ce dernier. Pour ce faire, l’Agent Controller s’enregistre auprès de l’Agent Receiver, un processus qui s’exécute sur le serveur Checkmk.
Ainsi, d’une part, l’agent Windows prend le relais du programme de l'agent, et donc de ses avantages. D’autre part, il complète le programme afin de permettre l’ajout de nouvelles fonctionnalités, telles que le chiffrement TLS de la communication ou la compression des données.
Le mode Pull enregistré, chiffré et compressé avec l’Agent Controller est disponible pour toutes les éditions de Checkmk — à condition que le serveur Checkmk et l’agent Checkmk disposent au minimum de la version 2.1.0.
Le mode Push est disponible dans Checkmk Ultimate
.
L’inversion du sens de communication facilite la supervision des ordinateurs hôtes situés derrière des pare-feu.
Le mode Push est généralement associé à l’enregistrement automatique de l’agent Checkmk, également disponible dans Checkmk Ultimate.
Les paquets d'agent utilisant la configuration par défaut ouvrent le port 6556 immédiatement après l'installation. Ils transmettront des données d'agent non chiffrées via ce port à toute personne qui en fait la demande. Pour les ordinateurs hôtes accessibles depuis l'internet, vous devez donc vous assurer, avant l'installation, via les paramètres du pare-feu, que seuls les ordinateurs hôtes sélectionnés sont autorisés à accéder à ce port. Effectuez l'enregistrement et l'activation associée du chiffrement TLS sans délai après l'installation. |
Pour des raisons de compatibilité, l'agent ne prend en charge que les versions actuelles de la gamme de produits Microsoft Windows NT (édition). Vous trouverez la liste exacte de ces versions dans l'article « Configuration système requise ».
Important : les autres éditions de Windows ne sont pas officiellement prises en charge. Cela inclut notamment Windows Embedded, par exemple. Toutefois, pour la supervision d’anciennes versions de Windows, telles que Windows Server 2008, vous pouvez utiliser un agent hérité à vos propres risques. Les agents hérités sont des agents issus d’anciennes versions de Checkmk ne disposant pas de l’Agent Controller. Cela signifie bien sûr que les fonctionnalités étendues de l’Agent Controller, telles que le chiffrement TLS ou la compression, ne seront pas disponibles. Les agents hérités sont disponibles au téléchargement ici. Pour les agents hérités, certaines exigences particulières doivent être prises en compte ; celles-ci sont résumées dans le chapitre consacré à l’installation.
L'installation, l'enregistrement et la configuration de l'agent s'effectuent en quelques étapes seulement, car l'agent ne nécessite par exemple aucune bibliothèque supplémentaire pour fonctionner. De plus, l'agent est livré avec une configuration de base suffisante pour la plupart des applications.
2. Architecture de l'agent
L'agent Checkmk se compose du programme de l'agent et de l'Agent Controller, qui communique avec l'Agent Receiver sur le serveur Checkmk. Veuillez consulter l'article général sur les agents de supervision pour plus de détails sur les architectures courantes de l'agent Linux et de l'agent Windows. Ce chapitre traite spécifiquement de l'implémentation Windows.
Le programme de l'agent check_mk_agent.exe est chargé de la collection des données de supervision.
Le programme est lancé en tant que service Windows sous le compte LocalSystem.
Il collecte des données sur le système local lorsqu'il est appelé et les met à la disposition de l'Agent Controller.
Le programme de l'agent est minimaliste, sécurisé, facilement extensible et complet, et donne accès à des données importantes qui ne sont pas accessibles via WMI ou SNMP. Dans certains cas, cependant, une supervision via SNMP en complément de l'agent Checkmk peut s'avérer utile. Consultez l'article sur la supervision avec SNMP pour en savoir plus sur ce thème. De plus, le programme de l'agent est aussi transparent qu'un fichier fourni sous forme d'exécutable peut l'être, car vous avez accès au code source à tout moment et donc un aperçu de ses fonctionnalités, et pouvez en principe également compiler l'agent vous-même.
L'Agent Controller cmk-agent-ctl.exe est le composant de l'agent chargé de transporter les données collectées par le programme de l'agent.
Il s'exécute en tant que processus d'arrière-plan sous le compte Windows LocalSystem.
En mode Pull, il écoute sur le port TCP 6556 les connexions entrantes provenant de l'instance Checkmk et interroge le programme de l'agent via un mécanisme de communication entre processus spécifique à Windows appelé Mailslot.
3. Installation
Checkmk propose plusieurs méthodes d'installation de l'agent Windows, allant de l'installation manuelle du logiciel au déploiement entièrement automatisé, y compris sa fonction de mise à jour. Certaines de ces méthodes d'installation ne sont disponibles que dans les éditions commerciales :
| Méthode | Description | Checkmk Community | Éditions commerciales |
|---|---|---|---|
Package MSI fourni |
Installation simple d'un agent standard avec configuration manuelle via des fichiers de configuration. |
X |
X |
Package MSI provenant de la boulangerie d’agents |
Configuration via l'interface graphique ; une configuration individuelle par ordinateur hôte est possible. |
X |
|
Le package de la boulangerie d’agents est installé une première fois manuellement ou via un script, puis sera mis à jour automatiquement par la suite. |
X |
Vous pouvez également distribuer le package MSI par d'autres chemins d'accès, tels que Microsoft Active Directory. L'installation peut être entièrement automatisée ici grâce au format MSI.
3.1. Téléchargement d'un package MSI
Vous installez l'agent Windows en installant le package MSI.
Avant l'installation, vous devez récupérer le paquet et le transférer sur l'ordinateur hôte sur lequel l'agent sera exécuté (par exemple avec scp ou WinSCP).
Obtenir un package via l'interface graphique Checkmk
Dans la communauté Checkmk sur
, vous trouverez le package Windows de l’agent via Setup > Agents > Windows.
Dans les éditions commerciales, accédez d’abord à la boulangerie d’agents dans le menu « Setup » via Agents > Windows, Linux, Solaris, AIX, où vous trouverez les packages prêts à l’emploi.
De là, l’entrée « Related > Windows files » vous mènera à la liste des fichiers de l’agent :

Tout ce dont vous avez besoin se trouve directement dans la première case intitulée «Packaged Agents» :
le fichier de package MSI prêt à l'emploi «check_mk_agent.msi» pour installer l'agent Windows avec ses paramètres par défaut.
Obtenir un paquet via l'API REST
L'API REST de Checkmk propose les méthodes suivantes pour télécharger les paquets d'agent depuis le serveur Checkmk :
Téléchargement de l'agent fourni.
Téléchargement d’un agent préparé individuellement en fonction du nom de domaine et du système d’exploitation.
Téléchargement d'un agent préparé individuellement en fonction du hachage de l'agent et du système d'exploitation.
Via l'API REST, vous avez la possibilité de récupérer le paquet directement depuis le serveur Checkmk vers la machine cible.
Par exemple, le paquet MSI contenant l'agent Windows peut être récupéré à l'aide de l'instruction suivante : `curl`.
Dans les versions récentes de Windows, `curl` est déjà inclus ; dans les versions plus anciennes, vous devrez d'abord installer séparément l'environnement d'instruction `curl` via `curl` pour Windows.
Remarque : l’instruction ci-dessus a été divisée en quatre lignes pour plus de lisibilité.
Il s'agit simplement d'un exemple simple visant à illustrer le fonctionnement de cette ressource API REST particulière pour le téléchargement de l'agent.
Pour plus de détails sur cette ressource et d'autres ressources de l'API REST, consultez la documentation de l'API disponible dans Checkmk via Help > Developer resources > REST API documentation.
La manière la plus simple de télécharger l'agent par défaut consiste à télécharger directement le fichier :
3.2. Installation du paquet
Installation manuelle
Après avoir récupéré le paquet MSI et, si nécessaire, l'avoir copié sur l'ordinateur hôte à surveiller à l'aide d'scp, de WinSCP ou d'un autre moyen, lancez l'installation soit en double-cliquant sur le fichier MSI, soit à partir de la ligne de commande comme suit :
La page d'accueil de l'assistant de configuration s'affiche :

Utilisez les boutons «Next» pour parcourir les pages de l'assistant. Acceptez les conditions de licence de l'GNU GENERAL PUBLIC LICENSE pour continuer. L'assistant de configuration vous présentera alors la page suivante :

Les choix proposés sur cette page ne vous concernent que si un agent Windows est déjà installé sur l'ordinateur hôte et qu'il est antérieur à la version 1.6.0. Dans la version 1.6.0, l'architecture de l'agent Windows a été profondément modifiée. Si vous effectuez une mise à jour (ou une migration) vers l'agent actuel à partir d'un agent Windows antérieur à la version 1.6.0, veuillez d'abord consulter le chapitre consacré à l'ancien agent dans le guide de l'utilisateur Checkmk pour la version 2.0.0. Vous y découvrirez laquelle des options proposées vous devez sélectionner dans ce cas particulier de mise à jour.
Dans tous les autres cas, nous vous recommandons de sélectionner l'option « Clean installation. ».
Confirmez le lancement de l'installation, puis autorisez le programme d'installation à effectuer les modifications (dans le dialogue « User Account Control »). Une fois l'opération terminée, vous pouvez quitter l'assistant de configuration.
Une fois l'installation terminée, l'agent démarre immédiatement en tant que service Windows et est prêt à effectuer la supervision du système.
Installation sans assistance
Via la ligne de commande, Windows offre aux administrateurs la possibilité d'installer automatiquement des packages MSI sans intervention de l'utilisateur. Une installation automatisée peut alors se présenter comme suit, par exemple :
Dans ce cas, l'agent est installé (/i) sans intervention de l'utilisateur ni interface utilisateur (/qn) et est également démarré immédiatement en tant que service Windows.
Cette méthode est donc idéale pour distribuer automatiquement l'agent sur de nombreux ordinateurs hôtes.
Vous pouvez également utiliser cette méthode pour sélectionner les trois options qui vous ont été proposées lors de l'installation manuelle dans l'assistant de Configuration. Pour chaque option, il existe un identifiant que vous pouvez utiliser pour l'instruction d'installation :
| Option dans l'assistant de configuration | Identifiant |
|---|---|
Clean installation. |
|
Remove Legacy Windows Agent (pre 1.6) if present. |
|
Migrate from Legacy Windows Agent (pre 1.6) configuration if present. |
|
Pour activer une option, ajoutez son identifiant suivi du signe « égal » :
Pour désactiver explicitement une option, vous devez ajouter deux guillemets supplémentaires après le signe égal :
3.3. Installation à l'aide de la boulangerie d’agents
Les éditions commerciales disposent d'un module logiciel, la boulangerie d’agents, permettant de créer automatiquement des agents personnalisés.
Vous trouverez une description détaillée de ce module dans l'article général consacré aux agents.
L'installation du package MSI généré s'effectue de la même manière que celle décrite ci-dessus pour le package inclus.
Dans Checkmk Ultimate, vous pouvez en outre utiliser la boulangerie d’agents pour doter les paquets d'agents d'une configuration d'enregistrement automatique, ce qui facilite la création automatique d'ordinateurs hôtes. Dans ce cas, l'enregistrement de l'agent s'effectue automatiquement une fois le paquet d'agent installé, et l'enregistrement manuel, tel que décrit dans le chapitre suivant, n'est plus nécessaire.
3.4. Mises à jour automatiques
Si vous utilisez la boulangerie d’agents, vous pouvez également configurer les mises à jour automatiques de l’agent.
Ces mises à jour sont décrites dans un article dédié.
3.5. Fichiers de configuration de l'agent
Lors d'une installation, le package MSI stocke les fichiers spécifiques au programme dans C:\Program Files (x86)\checkmk\service\ et les fichiers spécifiques à l'ordinateur hôte dans C:\ProgramData\checkmk\agent\.
Vous n'avez pas besoin de personnaliser les fichiers spécifiques au programme.
Les fichiers spécifiques à l'ordinateur hôte servent à stocker les plugins, les fichiers journaux et de configuration, ainsi qu'à configurer le comportement de l'agent.
Remarque : par défaut, l'intégralité du répertoire C:\ProgramData est masquée sous Windows.
L'agent lit trois fichiers de configuration à la suite :
C:\Program Files (x86)\checkmk\service\check_mk.yml
est le fichier de configuration par défaut, que vous ne devez pas modifier.C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml
est créé par la boulangerie d’agents et ne doit pas être modifié manuellement.C:\ProgramData\checkmk\agent\check_mk.user.yml
est votre fichier de configuration dans lequel vous pouvez effectuer manuellement des ajustements personnalisés pour tester un paramètre ou une extension sur un ordinateur hôte.
Si une option a été définie dans plusieurs fichiers, c'est le dernier fichier lu qui détermine la valeur de cette option.
Pour les interventions manuelles sur l'agent, seul le dernier fichier de configuration check_mk.user.yaml est donc pertinent, car il est lu en dernier et a donc le dernier mot.
Si la boulangerie d’agents n'est pas utilisée, c'est en fait le seul fichier dans lequel des personnalisations de la configuration de l'agent peuvent être effectuées.
Comme vous l'avez peut-être déjà remarqué d'après l'extension des fichiers de configuration, le format de fichier utilisé est YAML.
3.6. Que se passe-t-il après l'installation ?
Après l'installation de l'agent, y compris l'Agent Controller, l'étape suivante est l'enregistrement, qui configure le chiffrement TLS afin que les données chiffrées de l'agent puissent être déchiffrées par le serveur Checkmk et affichées dans la supervision.
Une particularité existe lorsque l’agent a été installé avec l’Agent Controller pour la première fois. Dans ce cas, l’agent bascule vers le mode legacy pull non chiffré, afin que le serveur Checkmk ne soit pas privé des données de supervision et puisse continuer à les afficher. Cela s’applique aussi bien à une nouvelle installation qu’à une mise à jour d’un agent de version 2.0.0 et antérieure.
Voici à quoi cela ressemblera dans la supervision :

Le site Checkmk détecte, à partir de la sortie de l'agent, que l'Agent Controller est présent et que le chiffrement TLS est donc possible — mais pas encore activé. Le service Check_MK Agent passe à l'état « WARN » et y reste jusqu'à ce que vous l'enregistriez. Après l'enregistrement, seul le mode Pull chiffré sera utilisé pour la communication. Le mode legacy Pull est désactivé et le restera. Il peut toutefois être réactivé par instruction si nécessaire.
La situation sera différente si vous utilisez un agent hérité sur un système Windows très ancien. Sans l’Agent Controller, l’enregistrement n’est pas possible. Ainsi, pour les agents hérités, les seules sections pertinentes du chapitre Enregistrement concernent l’ajout de l’ordinateur hôte à la Configuration, puis à la supervision. Dans le chapitre « Test et dépannage », vous devez omettre le test d'appel de l'Agent Controller, car celui-ci n'est pas disponible pour un agent hérité. Comme il n'y a pas non plus de chiffrement TLS sans l'Agent Controller, vous devrez utiliser d'autres méthodes de chiffrement si nécessaire. Dans ce cas, nous vous recommandons d'utiliser le chiffrement intégré (symétrique) via la règle « Symmetric encryption (Linux, Windows) ».
Remarque : dans le jeu de règles « Checkmk Agent installation auditing », vous trouverez divers paramètres permettant de vérifier l'état de l'agent et de le rendre visible dans la supervision. Vous pouvez notamment y spécifier l'état que doit présenter le service « Check_MK Agent » si la configuration TLS n'a pas encore été effectuée.
4. Inscription
4.1. Aperçu et conditions préalables
Immédiatement après l'installation de l'agent (ou lors de la mise à jour d'un agent de version 2.0.0 ou antérieure), seules les communications non chiffrées sont possibles en mode legacy pull. Une transmission de données exclusivement chiffrée ne peut être activée qu'une fois qu'une relation de confiance a été établie.
Les paquets préconfigurés pour l'enregistrement automatique et téléchargés via la boulangerie d’agents constituent une exception à cette règle. Ces paquets effectuent l'enregistrement automatiquement après l'installation.
Dans tous les autres cas, vous devez effectuer l'enregistrement manuellement immédiatement après l'installation de l'agent. Ce chapitre explique comment procéder à l'enregistrement.
L'enregistrement, et donc l'établissement de la relation de confiance mutuelle, s'effectue sous un utilisateur Checkmk disposant d'un accès à l'API REST.
Pour cela, l'utilisateur de l'automatisation agent_registration constitue un bon choix : il dispose uniquement de l'autorisation d'enregistrer des agents et est créé automatiquement lors de chaque installation de Checkmk.
Vous pouvez générer aléatoirement le mot de passe d'automatisation correspondant (secret d'automatisation) à l'aide de l'icône «
».
Vous devez enregistrer l'utilisateur avant de pouvoir utiliser le nouveau mot de passe.
Remarque : comme il n'y a pas d'Agent Controller, et donc pas de registre ni de chiffrement TLS, sur les très anciens systèmes Windows, vous devrez utiliser d'autres méthodes de chiffrement si nécessaire. Dans ce cas, nous vous recommandons d'utiliser le chiffrement intégré (symétrique) via la règle Symmetric encryption (Linux, Windows).
4.2. Ajout d'un ordinateur hôte à la Configuration
Commencez par créer le nouvel ordinateur hôte via Setup > Hosts > Add host. Un ordinateur hôte doit exister dans l'environnement de configuration avant de pouvoir être enregistré.
Dans Checkmk Ultimate, vous trouverez l'option « Checkmk agent connection mode » dans les propriétés de l'ordinateur hôte, dans la section consacrée aux agents de supervision. Vous pouvez y activer le mode Push pour l'agent Checkmk, en remplacement du mode Pull, disponible dans toutes les éditions.
4.3. Enregistrement d'un ordinateur hôte auprès du serveur
L'enregistrement s'effectue à l'aide de l'Agent Controller cmk-agent-ctl , qui fournit une interface de commande pour configurer les connexions.
Vous pouvez afficher l'aide relative aux instructions avec cmk-agent-ctl help , ainsi que pour des sous-commandes spécifiques disponibles, par exemple avec cmk-agent-ctl help register.
Le fait que l'ordinateur hôte soit configuré en mode Pull ou en mode Push n'a aucune incidence sur les exemples d'instruction. L'Agent Receiver indique à l'Agent Controller le mode dans lequel il doit fonctionner lors de l'enregistrement.
Accédez maintenant à l'ordinateur hôte à enregistrer. Vous devez ici envoyer une requête à l'instance Checkmk avec des droits d'administrateur :
Le nom de domaine suivant l'option --hostname doit être exactement le même que celui utilisé lors de sa création dans la Configuration.
Les options --server et --site spécifient le nom du serveur Checkmk et du site.
Le nom du serveur peut également être l'adresse IP ; le nom du site (ici mysite) correspond à celui que vous voyez dans le chemin d'accès de l'interface web.
Ces options sont complétées par le nom et le mot de passe utilisés par l'utilisateur de l'automatisation.
Si vous omettez l'option --password, le mot de passe vous sera demandé de manière interactive.
Attention, piège pour les imprudents : si vous administrez principalement des machines Unix, vous avez l'habitude d'encadrer les chemins d'accès ou les paramètres contenant des espaces ou des caractères spéciaux entre des guillemets simples (apostrophes, 0x27).
Windows interprète ce caractère comme faisant partie de l'appel — dans ce cas, le mot de passe — et l'enregistrement échouera.
Utilisez plutôt des guillemets doubles (0x22).
Si les valeurs spécifiées sont correctes, il vous sera demandé de confirmer l'identité de l'instance Checkmk à laquelle vous souhaitez vous connecter. Pour plus de clarté, nous avons abrégé le certificat du serveur à confirmer :
Attempting to register at cmkserver:8000/mysite. Server certificate details:
PEM-encoded certificate:
---BEGIN CERTIFICATE---
MIIC6zCCAdOgAwIBAgIUXbSE8FXQfmFqoRNhG9NpHhlRJ40wDQYJKoZIhvcNAQEL
[...]
nS+9hN5ILfRI+wkdrQLC0vkHVYY8hGIEq+xTpG/Pxw==
---END CERTIFICATE---
Issued by:
Site 'mysite' local CA
Issued to:
localhost
Validity:
From Thu, 10 Feb 2022 15:13:22 +0000
To Tue, 13 Jun 3020 15:13:22 +0000
Do you want to establish this connection? [Y/n]
> YConfirmez en cliquant sur « Y » pour terminer le processus.
Si aucun message d'erreur ne s'affiche, la connexion cryptée aura été établie. Toutes les données seront désormais transmises sous forme compressée via cette connexion.
Si vous souhaitez désactiver la vérification interactive du certificat — par exemple pour automatiser entièrement l'enregistrement —, vous pouvez utiliser le paramètre supplémentaire --trust-cert.
Dans ce cas, le certificat transféré sera automatiquement considéré comme fiable.
N'oubliez pas que vous devez prendre d'autres mesures pour vérifier l'intégrité du certificat.
Cela peut être effectué (manuellement ou via un script) en inspectant le fichier C:\ProgramData\checkmk\agent\registered_connections.json.
4.4. Enregistrement automatique d’un ordinateur hôte auprès du serveur
Checkmk Ultimate offre la possibilité de créer automatiquement des ordinateurs hôtes lors de l'enregistrement. Pour un tel enregistrement automatique, outre un utilisateur disposant des autorisations nécessaires pour enregistrer des ordinateurs hôtes, vous devez disposer d'au moins un dossier configuré pour contenir les ordinateurs hôtes qui doivent être créés automatiquement.
Si ces conditions sont remplies, vous pouvez également effectuer l'enregistrement, y compris la création automatique d'ordinateurs hôtes, via la ligne de commande.
En général, vous utiliserez la procédure de configuration de la boulangerie d’agents,
qui inclut le fichier de configuration C:\ProgramData\checkmk\agent\pre_configured_connections.json dans le paquet de l'agent et qui effectue l'enregistrement automatiquement lors de l'installation.
L'instruction de ligne de commande présentée ici est donc principalement utilisée à des fins de test et de débogage, par exemple pour essayer vos propres étiquettes de l'agent avec l'option --agent-labels <KEY=VALUE>.
La principale différence réside ici dans la sous-commande register-new modifiée, qui sert à demander l'enregistrement et la création d'un nouvel ordinateur hôte dans l'instance Checkmk.
Le nom de l'ordinateur hôte est celui stocké dans la variable d'environnement %COMPUTERNAME%.
La confirmation du certificat qui s'ensuit est identique à celle présentée dans la section précédente.
Le fait que l'ordinateur hôte soit créé en mode Pull, en mode Push ou pas du tout est défini par vos paramètres dans le jeu de règles Agent registration. Une fois l'enregistrement réussi, plusieurs minutes peuvent s'écouler avant que l'ordinateur hôte n'apparaisse dans la supervision.
4.5. Vérification de la relation de confiance
L'instruction cmk-agent-ctl status affiche désormais exactement une relation de confiance avec le serveur Checkmk :
Si vous avez besoin de ces informations dans un format lisible par machine, ajoutez le paramètre supplémentaire --json pour récupérer la sortie au format JSON.
Remarque : il ne peut y avoir qu’une seule relation de confiance entre un hôte et un site.
Par exemple, si vous enregistrez un hôte déjà enregistré mynewhost sous un nom différent (mynewhost2) mais avec la même adresse IP, la nouvelle connexion remplacera alors celle qui existe déjà.
La connexion entre mynewhost et l’instance sera interrompue et aucune donnée d’agent ne sera plus fournie à l’hôte à des fins de supervision.
4.6. Enregistrement par proxy
Pour faciliter l'enregistrement de plusieurs ordinateurs hôtes, tout ordinateur hôte sur lequel l'agent est installé peut effectuer un enregistrement au nom d'autres ordinateurs hôtes. Le processus d'enregistrement exporte un fichier JSON, qui peut ensuite être transféré vers l'ordinateur hôte cible et y être importé. Là encore, comme précédemment, l'ordinateur hôte enregistré dans la tâche doit déjà être configuré sur le site.
Tout d'abord, sur n'importe quel ordinateur hôte de la Configuration, l'enregistrement est effectué par procuration.
Ici, bien sûr, le serveur Checkmk s'avère très pratique, car il est généralement le premier ordinateur hôte à être configuré.
Comme dans l'exemple ci-dessus, vous pouvez transmettre le mot de passe via l'option ou être invité à le saisir de manière interactive si vous omettez l'option --password.
Dans l'exemple, nous redirigeons la sortie JSON vers un fichier :
Nous transférons ensuite le fichier /tmp/mynewhost3.json vers l'ordinateur hôte que nous avons enregistré et importons ce fichier :
4.7. Ajout de l'ordinateur hôte à la supervision
Une fois l'enregistrement terminé, effectuez un test de connexion et une reconnaissance du service dans la configuration du serveur Checkmk. Enfin, incluez les services découverts dans la supervision en activant les modifications.
Si le test de connexion échoue, consultez le chapitre suivant pour obtenir des informations sur les tests et le dépannage.
4.8. Désenregistrer un ordinateur hôte
Vous pouvez également désenregistrer un ordinateur hôte.
Sur un ordinateur hôte connecté au serveur Checkmk, vous pouvez révoquer la confiance.
Ici, dans l'instruction suivante, l'identifiant unique universel (UUID) à spécifier est celui généré par la commande `cmk-agent-ctl status` :
Pour supprimer toutes les connexions de l'ordinateur hôte et rétablir en outre le mode legacy pull, entrez l'instruction suivante :
Par la suite, l'agent se comportera comme lors de l'installation initiale et avant le premier enregistrement, et enverra ses données en clair.
Terminez la désinscription sur le serveur Checkmk : Dans la configuration, sur la page « Properties of host », sélectionnez l'entrée « Host > Remove TLS registration » et confirmez l'invite.
Si vous préférez utiliser la ligne de commande : Sur le serveur Checkmk, pour chaque connexion d'un ordinateur hôte sous supervision, il existe un lien symbolique avec l'UUID qui pointe vers le dossier contenant la sortie de l'agent :
4.9. Basculer entre les modes Push et Pull
Dans Checkmk Ultimate
, vous pouvez faire passer les ordinateurs hôtes du mode Push au mode Pull et inversement.
Cela peut s’avérer nécessaire dans certains cas particuliers si des modifications de la topologie du réseau sont en attente, ou si une mise à niveau vers Checkmk Pro
— où seul le mode Pull est possible — doit être effectuée.
Commencez par définir le mode d’accès dans la configuration, dans les propriétés de l’ordinateur hôte, à l’aide de l’option « Checkmk agent connection mode ».
Dans la minute qui suit, tous les services passeront au statut « UNKNOWN » (Inconnu) car aucune donnée de supervision n’est reçue.
Effectuez ensuite un nouvel enregistrement.
Au cours de ce réenregistrement, l’Agent Receiver du serveur Checkmk indique à l’Agent Controller s’il attend des données en mode Pull ou mode Push.
Une check ultérieure à l'aide de cmk-agent-ctl status affichera alors un nouvel UUID et un mode correspondant à la modification effectuée dans la Configuration.
5. Tests et dépannage
Un système modulaire peut ne pas fonctionner comme prévu dans de nombreuses situations. Étant donné que l’agent utilise deux composants, à savoir l’Agent Controller (sur l’ordinateur hôte) et l’Agent Receiver (sur le serveur Checkmk), les points de défaillance potentiels sont nombreux. Lors du dépannage, il est donc recommandé d’adopter une approche structurée. Vous pouvez bien sûr également utiliser l’analyse étape par étape décrite ici pour mieux comprendre la collecte de données et la communication assurées par Checkmk.
Toutes les options de diagnostic disponibles côté serveur Checkmk sont décrites dans l’article général sur les agents de supervision. Mais, bien sûr, d’autres diagnostics sont disponibles lorsque vous vous connectez directement à l’ordinateur hôte lui-même.
Dans les sections suivantes, nous passerons du programme de l’agent à l’Agent Controller et au port TCP 6556, puis à l’instance Checkmk. Lorsque l’Agent Controller est en mode Push, ignorez tout test sur le port 6556 — même si le port 6556 est ouvert avant l’enregistrement, il sera fermé après un enregistrement en mode Push. Dans la plupart des cas, après avoir corrigé une erreur, vous pouvez redémarrer la reconnaissance du service et finaliser l'intégration dans la supervision.
5.1. Check de la configuration
Pour vérifier que la configuration a été lue comme prévu, appelez le programme de l'agent avec l'option showconfig.
Avec cette option, vous obtiendrez non seulement la configuration telle qu'elle est actuellement utilisée par l'agent, mais en outre, les variables d'environnement ainsi que les fichiers de configuration utilisés seront toujours affichés.
Si seule une partie de la configuration vous intéresse, vous pouvez limiter la sortie à cette partie spécifique.
Ici, par exemple, on checke si les options de la section ps ont été correctement définies :
Vous obtenez ainsi un aperçu rapide de la manière dont les trois fichiers de configuration différents ont été fusionnés et utilisés par le programme de l'agent. Les erreurs seront immédiatement visibles.
5.2. Environnement réseau pour l'enregistrement
Si l'enregistrement d'un ordinateur hôte échoue avant même qu'un certificat ne soit présenté, la connaissance des méthodes de communication peut aider à identifier le problème — et bien sûr à le résoudre.
Une fois l’instruction « cmk-agent-ctl register » saisie, l’Agent Controller demande d’abord au serveur Checkmk le port de l’Agent Receiver à l’aide de l’API REST.
Dans un deuxième temps, une connexion à l’Agent Receiver est établie pour demander le certificat.
Vous pouvez simuler la première requête sur l’ordinateur hôte à l’aide d’un programme tel que curl :
Le paramètre --insecure indique à curl d’ignorer la vérification du certificat.
Ce comportement reflète celui de l’Agent Controller à cette étape.
La réponse ne comporte que quelques octets et contient le numéro de port de l’Agent Receiver.
Pour la première instance, il s’agit généralement de 8000, pour la deuxième de 8001, et ainsi de suite.
Les problèmes courants liés à cette requête sont les suivants :
Le serveur Checkmk est inaccessible depuis l'ordinateur hôte
Le port utilisé par l'API REST diffère des ports par défaut 443 (https) ou 80 (http)
Si la requête ci-dessus échoue, vous pouvez modifier les paramètres de routage ou de pare-feu pour permettre l'accès.
Si l'ordinateur hôte que vous essayez d'enregistrer utilise un proxy HTTP, curl l'utilisera, mais cmk-agent-ctl ne le fera pas avec la configuration par défaut.
Utilisez l'option supplémentaire --detect-proxy pour indiquer à cmk-agent-ctl d'utiliser un proxy configuré via les paramètres système.
Cependant, il est souvent plus simple d'identifier le port de l'Agent Receiver et de le noter. Pour ce faire, sur le serveur Checkmk, après vous être connecté en tant qu'utilisateur de l'instance, exécutez :
Vous pouvez désormais spécifier le port lors de la saisie de l'instruction d'enregistrement. Cela permet d'éviter la première requête vers l'API REST. La communication s'effectue alors directement avec l'Agent Receiver, sans détours :
Le port 8000 doit également être accessible depuis l'ordinateur hôte. Si ce n'est pas le cas, vous obtiendrez ce message d'erreur :
ERROR [cmk_agent_ctl] Connection refused (os error 111)À l'instar du port 443 (ou 80) mentionné ci-dessus, vous pouvez désormais ajuster les paramètres de routage ou de pare-feu afin que l'ordinateur hôte puisse atteindre le serveur Checkmk sur le port de l'Agent Receiver (8000 ou 8001…)
Dans le cas d'un enregistrement en mode Push, les règles suivantes s'appliquent : Si l'enregistrement a fonctionné, le transfert minute par minute de la sortie de l'agent sera également réussi.
Si les directives de sécurité interdisent l'accès à l'Agent Receiver, il est toujours possible d'utiliser l'enregistrement par proxy sur le serveur Checkmk.
5.3. L'Agent Controller en mode dump
Étant donné que le programme de l'agent doit être exécuté sous le compte LocalSystem afin de transmettre exactement les données qui parviennent à la supervision, vous ne devez jamais le lancer dans un shell.
Si vous souhaitez examiner la sortie de l'agent localement, utilisez l'Agent Controller en mode dump (sous-commande dump).
Cela lance le programme de l'agent avec l'environnement correct et sous l'ID utilisateur approprié, puis affiche le résultat.
La sortie pouvant être assez longue, le paginateur « more » s'avère très pratique dans ce cas. Vous pouvez quitter ce mode à l'aide de la touche Q :
Cela vous permet de vérifier que les données provenant du programme de l'agent sont bien parvenues au Agent Controller. Cette sortie ne prouve pas encore que l'agent est également accessible via le réseau.
5.4. Test de connexion à distance
Si, en mode Pull, il a été vérifié que le programme de l'agent et ses plugins installés s'exécutent correctement,
vous pouvez ensuite vérifier via netcat (ou nc) si le port 6556 est accessible via l'adresse IP externe de l'ordinateur hôte :
La sortie 16 indique si la connexion a été établie avec succès et si la négociation TLS peut désormais avoir lieu.
Étant donné que tout le reste est ici chiffré par TLS, aucune vérification plus détaillée n'est possible.
Si la communication entre l'agent et le serveur Checkmk n'est toujours pas chiffrée (comme en mode legacy pull) ou si elle est et reste non chiffrée (comme dans le cas d'un agent hérité),
vous obtiendrez la sortie complète non chiffrée de l'agent avec cette instruction au lieu de l'16.
Pour effectuer d'autres diagnostics sur le serveur Checkmk, consultez l'article général sur les agents de supervision. Vous pouvez notamment effectuer un test de connexion à l'aide de l'interface Checkmk. Le résultat s'affichera dans la zone « Agent: ».

Si vous n'obtenez aucune information ou uniquement un message d'erreur de timeout lors du test de connexion, comme dans l'exemple ci-dessus, vous devez vérifier la configuration du pare-feu Windows sur l'ordinateur hôte.
5.5. Pare-feu Windows
L'agent crée déjà une règle dans le pare-feu Windows lors de son installation, afin que l'Agent Controller soit accessible depuis l'extérieur via le port 6556. Lorsque vous utilisez le mode Push, il n'est généralement pas nécessaire de modifier ses paramètres. Si vous utilisez une configuration de pare-feu très stricte, les règles sortantes pour les connexions au serveur de supervision doivent être configurées de manière à ce qu’au moins le port 8000 (pour faciliter l’enregistrement, ainsi que le 80 ou le 443) soit accessible.
Dans les versions actuelles de Windows, vous pouvez accéder à l'Windows Defender Firewall with Advanced Securityr via les Paramètres Windows (Settings > Windows Security) ou le lancer en exécutant l'instruction wf.msc depuis la ligne de commande :

Si vous ne trouvez pas cette entrée dans les paramètres du Pare-feu Windows, vous pouvez l'ajouter à cet emplacement précis. Pour ce faire, cliquez sur « New Rule » dans le menu « Action ».
Cela ouvre un assistant permettant de créer une nouvelle règle de pare-feu. Définissez les cinq options comme suit :
Rule Type |
Laissez la sélection sur « Program ». |
Program |
Saisissez This program path |
Action |
Allow the connection. |
Profile |
Ce point dépend fortement de la configuration de votre réseau. Cependant, dans la plupart des cas, il est recommandé de n'activer ici que Domain et Private. |
Name |
Donnez à la règle un nom concis et court. |
Vous pouvez également automatiser cette étape et définir la règle directement à partir de la ligne de commande. Modifiez l'instruction suivante en fonction de votre chemin d'accès personnalisé si nécessaire :
Remarque : l’instruction a été divisée en quatre lignes pour plus de lisibilité.
5.6. Dépannage de l'agent en mode Push
Dans le dossier « ~/var/agent-receiver/received-outputs/ » de votre instance Checkmk, vous trouverez, pour chaque ordinateur hôte enregistré, un lien symbolique dont le nom correspond à l’UUID de l’ordinateur hôte.
Pour les ordinateurs hôtes en mode Push, ce lien symbolique pointe vers le dossier contenant la sortie de l’agent Checkmk ; pour les ordinateurs hôtes en mode Pull, il pointe vers un fichier inexistant portant le nom de l’ordinateur hôte tel qu’il est utilisé dans la supervision.
En fonction de l'ancienneté de la sortie de l'agent mis en cache, vous pouvez déterminer si la transmission régulière a abouti ou si elle est interrompue, par exemple par des problèmes réseau sporadiques.
De plus, vous pouvez consulter le fichier journal C:\ProgramData\checkmk\agent\log\check_mk sur l'ordinateur hôte (les chemins d'accès peuvent être configurés différemment).
Des lignes telles que celles-ci indiquent des problèmes de connexion :
Dez 15 17:59:49 myhost23 cmk-agent-ctl[652648]: WARN [cmk_agent_ctl::modes::push] https://mycmkserver:8000/mysite: Error pushing agent output.5.7. Les connexions sont perdues
Si un ordinateur hôte a été configuré pour l'enregistrement automatique avec le jeu de règles Agent controller auto-registration et que l'option Keep existing connections est définie sur no, chaque fois que le service cmk-agent-ctl-daemon est redémarré (par exemple, lors du redémarrage d'un ordinateur hôte), toutes les autres connexions seront supprimées — à l'exception de la connexion configurée pour l'enregistrement automatique.
Cela affecte, par exemple, les ordinateurs hôtes sur lesquels des connexions vers plusieurs instances ont été configurées avant l'installation du paquet d'agent précompilé, ou sur lesquels des connexions ont été ajoutées manuellement après l'installation du paquet d'agent.
Vous pouvez temporairement contourner ce comportement en définissant la variable keep_existing_connections sur true dans le fichier C:\ProgramData\checkmk\agent\pre_configured_connections.json sur l’ordinateur hôte.
Vous pouvez obtenir une modification permanente lors d’une mise à jour du paquet d’agent en définissant Keep existing connections sur yes dans le jeu de règles ci-dessus.
5.8. Délai avant que les modifications ne soient visibles
Lors de l'enregistrement automatique d'un ordinateur hôte, il faut généralement compter environ deux minutes avant que l'ordinateur hôte n'apparaisse dans la supervision.
6. Sécurité
6.1. Considérations préliminaires
La sécurité est un critère important pour tout logiciel, et la supervision ne fait pas exception. Étant donné que l’agent de supervision est installé sur chaque serveur surveillé, un problème de sécurité aurait ici des conséquences particulièrement graves.
C'est pourquoi la sécurité a été mise en avant lors de la conception de Checkmk et constitue un principe absolu depuis les tout débuts de Checkmk : l'agent ne lit pas les données du réseau. Point final. Cela signifie qu'il est impossible pour un attaquant d'injecter des instructions ou des composants de script via le port de supervision 6556.
6.2. Transport Layer Security (TLS)
Pour un attaquant, cependant, même une liste de processus peut constituer un premier indice permettant de tirer des conclusions sur des cibles intéressantes. Par conséquent, le chiffrement de la couche de transport entre l’agent et le serveur Checkmk à l’aide du protocole Transport Layer Security (TLS) est obligatoire. Ici, le serveur Checkmk « ping » l’ordinateur hôte, qui établit alors la connexion TLS avec le serveur Checkmk et transmet la sortie de l’agent par ce biais. Étant donné que seuls les serveurs Checkmk avec lesquels une relation de confiance existe peuvent initier ce transfert de données, il n’y a aucun risque que les données tombent entre de mauvaises mains.
Pour sécuriser la connexion TLS, Checkmk utilise un certificat auto-signé qui est automatiquement remplacé peu avant l'expiration de sa validité. L'Agent Controller se charge du renouvellement du certificat à temps avant son expiration. Seuls les agents qui sont restés inactifs pendant une longue période, c'est-à-dire sans Agent Controller en cours d'exécution, peuvent perdre leur enregistrement à l'expiration et doivent alors être réenregistrés. La durée de vie du certificat peut être spécifiée via le paramètre global « Agent Certificates > Lifetime of certificates ».
Remarque : Étant donné qu’il n’y a pas d’Agent Controller, et donc pas de registre ni de chiffrement TLS, sur les très anciens systèmes Windows, vous devrez choisir d’autres méthodes de chiffrement si nécessaire. Dans ce cas, nous vous recommandons d’utiliser le chiffrement intégré (symétrique) via la règle Symmetric encryption (Linux, Windows).
6.3. Restriction de l'accès via les adresses IP
La restriction de l'accès à des adresses IP spécifiques peut également être configurée via le pare-feu. Cependant, l'agent lui-même offre également la possibilité d'ignorer simplement les requêtes provenant d'adresses IP étrangères. Il suffit d'ajouter la restriction suivante au fichier de configuration dans les options globales. Notez qu'il peut y avoir d'autres paramètres définis dans le fichier de configuration avant ou après celui-ci et qu'il ne s'agit ici que d'un extrait :
Comme vous pouvez le voir dans l'exemple, vous pouvez autoriser un nombre illimité de sous-réseaux.
Par exemple, avec /32, vous spécifiez un sous-réseau de taille 1, de sorte que seule cette adresse soit autorisée, tandis qu'avec 192.168.42.0/24, vous autorisez toutes les adresses comprises entre 192.168.42.0 et 192.168.42.255.
Dans la boulangerie d’agents, vous pouvez configurer les adresses IP autorisées à l’aide du jeu de règles suivant :
Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Allowed agent access via IP address (Linux, Windows)
.
6.4. Désactivation du chiffrement intégré
En particulier lors de la mise à jour de l'agent, il se peut que le chiffrement intégré (symétrique) soit actif, lequel est effectué par le programme de l'agent lui-même. Si le chiffrement TLS et le chiffrement intégré sont actifs simultanément, l’entropie des données transmises est si élevée que la compression, active à partir de la version 2.1.0, ne permettra pas de réduire le volume des données transmises — et imposera aux processeurs de l’ordinateur hôte et du serveur Checkmk des processus de chiffrement et de déchiffrement supplémentaires.
C'est pourquoi vous devez désactiver le chiffrement intégré dès que possible après être passé à TLS.
Dans un premier temps, désactivez le chiffrement dans la règle existante sous Setup > Agents > Access to agents > Checkmk agent > Symmetric encryption (Linux, Windows).
Dans un deuxième temps, sur l'ordinateur hôte de l'agent, dans le fichier de configuration C:\ProgramData\checkmk\agent\check_mk.user.yml, remplacez la valeur du paramètre encrypted par no :
À la troisième et dernière étape, utilisez la règle « Enforce agent data encryption » pour spécifier que le serveur Checkmk n'accepte que les données chiffrées via TLS. Pour ce faire, sélectionnez la valeur « Accept TLS encrypted connections only » dans la règle.
La désactivation du chiffrement avec la boulangerie d’agents se déroule comme suit :
Avec la première étape, qui consiste à modifier la règle « Symmetric encryption (Linux, Windows) », vous avez presque terminé.
Il ne vous reste plus qu’à créer et à distribuer de nouveaux agents.
Le fichier de configuration
C:\ProgramData\checkmk\agent\check_mk.user.yml sera automatiquement modifié pour vous et inclus dans les paquets d’agents.
Il ne reste plus que la troisième étape, à savoir la modification de la règle « Enforce agent data encryption ».
Après la prochaine mise à jour automatique de l'agent, le chiffrement du programme de l'agent sera désactivé, mais le chiffrement sera assuré par l'Agent Controller. Veuillez noter qu'après la mise à jour automatique de l'agent, seuls les ordinateurs hôtes enregistrés pourront fournir des données de supervision.
7. Désactivation des sections
La sortie de l'agent Checkmk est divisée en sections.
Chacune de ces sections contient des informations connexes.
Les sections commencent toujours par un en-tête de section.
Il s'agit d'une ligne encadrée par <<< et >>>.
À l'exception des sections propres à Checkmk, vous pouvez désactiver individuellement n'importe laquelle des plus de 30 sections générées par défaut par l'agent. Concrètement, cela signifie que les instructions correspondantes ne seront pas exécutées par l'agent, ce qui peut permettre de gagner du temps de calcul. D'autres raisons peuvent vous pousser à désactiver une section, par exemple si vous n'êtes tout simplement pas intéressé par certaines informations provenant d'un groupe d'ordinateurs hôtes donné, ou si un ordinateur hôte particulier fournit des valeurs erronées et que vous souhaitez interrompre temporairement la récupération de ces données.
En tant qu'utilisateur de l'une des éditions commerciales, il vous suffit de créer une règle via Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Disabled sections (Windows agent), qui sera ensuite prise en compte par la boulangerie d’agents.

Remarque : l'image ci-dessus montre qu'il existe également une règle opposée Enabled sections (Windows agent) à Disabled sections (Windows agent), ce qui signifie que vous pouvez utiliser la liste « positive » comme alternative à la liste « négative ». Toutefois, pour conserver un aperçu clair, nous vous recommandons de n'utiliser qu'une seule des deux règles.
Dans la règle Disabled sections (Windows agent), vous trouverez une case à cocher distincte pour chaque section pouvant être désactivée.
Pour les cases cochées, vous trouverez alors — une fois que l’agent nouvellement généré aura été installé sur les ordinateurs hôtes sélectionnés — dans le fichier de configuration de la boulangerie d’agents C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml ci-dessous global: une ligne disabled_sections: répertoriant les sections sélectionnées.
Par exemple, si vous sélectionniez à la fois System uptime et Web Services, le fichier de configuration correspondant ressemblerait à ceci :
Les utilisateurs de la communauté Checkmk
peuvent créer manuellement une entrée dans le fichier de configuration C:\ProgramData\checkmk\agent\check_mk.user.yml et y indiquer les sections à désactiver.
Toutes les sections pouvant être désactivées sont répertoriées dans ce fichier, sous global:, dans la section _sections:.
8. Extension de l'agent à l'aide de plugins
8.1. Que sont les plugins d'agent ?
Le programme de l'agent check_mk_agent.exe contient un ensemble complet de sections qui fournissent des données de supervision pour divers plugins de supervision, lesquels sont ensuite automatiquement détectés par la reconnaissance du service.
Cela inclut toutes les surveillances importantes du système d'exploitation.
De plus, il est possible d’étendre l’agent à l’aide de plugins d’agent. Il s’agit de petits scripts ou programmes appelés par l’agent qui l’étendent avec des sections supplémentaires contenant des données de supervision complémentaires. Le projet Checkmk fournit un certain nombre de ces plugins qui, s’ils sont correctement installés et configurés, fournissent automatiquement de nouveaux services dans la reconnaissance du service.
Pourquoi ces plugins ne sont-ils pas simplement intégrés en dur dans l’agent ? Pour chacun des plugins, l’une des raisons suivantes s’applique :
Le plugin ne peut récupérer ses données que via des interfaces internes que l'agent ne fournit pas (exemple : PowerShell).
Le plugin nécessite de toute façon une configuration, sans laquelle il ne fonctionnerait pas (exemple :
mk_oracle.ps1).Le plugin est si spécifique qu’il n’est pas nécessaire à la plupart des utilisateurs (exemple :
citrix_licenses.vbs).
8.2. Installation manuelle
Les plug-ins inclus pour Windows se trouvent tous sur l’ordinateur hôte surveillé, dans le répertoire d’installation de l’agent, sous C:\Program Files (x86)\checkmk\service\plugins.
Ils y sont stockés afin d’être directement disponibles.
Les plug-ins pour Windows se trouvent également sur le serveur Checkmk, sous ~/share/check_mk/agents/windows/plugins.
Ils sont également disponibles depuis la page de téléchargement de l’agent dans le menu de configuration (comme décrit dans le chapitre Installation) dans la case Plugins :

Pour tous les plugins d'agent que nous fournissons, il existe des plugins de supervision correspondants qui peuvent évaluer leurs données et générer des services. Ceux-ci sont déjà installés, de sorte que les nouveaux services détectés sont immédiatement reconnus et peuvent être configurés.
Remarque : avant d'installer un plugin sur l'ordinateur hôte, consultez le fichier correspondant. Vous y trouverez souvent des informations importantes concernant l'utilisation correcte du plugin.
L'installation proprement dite est ensuite simple :
Copiez le fichier dans C:\ProgramData\checkmk\agent\plugins.
Une fois que le plugin se trouve dans le répertoire approprié, il sera automatiquement appelé par l’agent et une nouvelle section sera créée dans la sortie de l’agent.
Celle-ci porte généralement le même nom que le plugin.
Les plugins complexes (par exemple mk_oracle.ps1) créent même tout un ensemble de nouvelles sections.
8.3. Configuration
Certains plugins nécessitent un fichier de configuration dans C:\ProgramData\checkmk\agent\config pour fonctionner.
Pour d’autres, la configuration est facultative (par exemple mssql.vbs) et permet d’activer des fonctionnalités spéciales ou des personnalisations.
D’autres encore fonctionnent tout simplement ainsi.
Vous disposez de plusieurs sources d’information :
La documentation des plugins de supervision associés sur votre instance Checkmk, accessible via Setup > Services > Catalog of check plugins.
Les commentaires dans le fichier du plugin (souvent très utiles !)
Un article pertinent dans ce guide de l'utilisateur (par exemple sur la supervision d'Oracle)
Pour les langages spéciaux (de script), il peut être nécessaire de les activer au préalable dans la configuration de l'agent.
Par exemple, les scripts Python ne seront pas exécutés à moins d'être explicitement activés.
Vous pouvez le faire en ajoutant les extensions de fichiers dans le fichier de configuration check_mk.user.yml, dans la section global, comme indiqué dans l'extrait suivant :
Important : l'utilisation de tels plugins nécessite que les fichiers puissent également être appelés dans une ligne de commande standard sans chemins d'accès spéciaux. Dans le cas de Python, celui-ci doit être correctement installé et le chemin d'accès à l'interpréteur doit figurer dans les variables d'environnement. Vous trouverez des instructions sur la manière de configurer correctement Python directement sur les pages de la Python Software Foundation.
8.4. Personnalisation de l'exécution d'un plugin spécifique
Chaque plugin peut être exécuté selon différents modes. Les options suivantes peuvent être saisies dans le fichier de configuration.
| Option | Valeur | Description |
|---|---|---|
|
|
Définit la portée des options suivantes. Des caractères génériques peuvent également être utilisés ici. Les options suivantes s’appliquent alors à tous les plugins auxquels l’expression s’applique. Leading détermine si le plugin doit être exécuté directement depuis le répertoire d’installation sous |
|
|
Détermine si l'exécution d'un plugin doit être supprimée. |
|
|
Exécute un plugin de manière asynchrone et stocke les données dans un fichier. En cas d'exécution synchrone, la sortie est transmise directement à l'agent. |
|
|
Définit la durée d'exécution maximale. Passé ce délai, le plugin sera arrêté même si aucune sortie n'a été générée. La valeur par défaut est basée sur la valeur par défaut de l'intervalle de requête de l'agent. |
|
|
Définit, en secondes, la durée de validité d'une sortie. |
|
|
Nombre d'échecs autorisés pour un plugin avant que la sortie ne soit supprimée du cache. |
|
|
Vous pouvez saisir ici un texte libre qui sera ajouté aux journaux. |
Une configuration du plugin Veeam ressemble alors par exemple à ceci (l'extrait est raccourci et ne contient que la partie pertinente pour l'exemple) :
Selon la configuration exemplaire ci-dessus, le plugin situé dans le répertoire de données C:\ProgramData\checkmk\agent\plugins est exécuté de manière asynchrone toutes les cinq minutes (300 secondes) et peut s'exécuter pendant deux minutes (120 secondes) au maximum.
Si le plugin atteint ce timeout, il effectuera une deuxième tentative pour obtenir un résultat.
8.5. Installation via la boulangerie d’agents
Dans les éditions commerciales, les plugins inclus peuvent être configurés via la boulangerie d’agents.
Celui-ci se charge à la fois de l'installation du plugin lui-même et de la création correcte du fichier de configuration, si nécessaire.
Chaque plugin est configuré via une règle d'agent. Vous trouverez les jeux de règles appropriés dans Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Agent Plugins :

8.6. Exécution manuelle
Les plugins d'agent étant des programmes exécutables, vous pouvez les lancer manuellement à des fins de test et de diagnostic. Cependant, certains plugins nécessitent que l'agent définisse certaines variables d'environnement pour trouver leur fichier de configuration, par exemple. Si nécessaire, définissez-les manuellement si elles sont requises dans le script ou le programme.
9. Intégration des anciens plugins de supervision Nagios
9.1. Exécution des plugins via MRPE
Il existe deux bonnes raisons de continuer à utiliser les plugins Nagios sous Checkmk. Si vous avez migré votre supervision d’une solution basée sur Nagios vers Checkmk, vous pouvez continuer à utiliser d’anciens plugins de supervision pour lesquels il n’existe pas encore d’équivalent Checkmk. Dans de nombreux cas, il s’agit de plugins développés en interne en Perl ou en shell.
La deuxième raison est la véritable supervision de bout en bout. Supposons que vous disposiez d’un serveur Checkmk, d’un serveur web et d’un serveur de base de données répartis dans un grand centre de données. Dans un tel cas, les temps de réponse du serveur de base de données mesurés depuis le serveur Checkmk ne sont pas très significatifs. Il est bien plus important de connaître ces valeurs pour la connexion entre le serveur web et le serveur de base de données.
L'agent Checkmk fournit un mécanisme simple pour répondre à ces deux exigences : le Remote Plugin Executor de Checkmk, ou MRPE en abrégé. Ce nom est délibérément une analogie avec le NRPE de Nagios, qui y remplit la même fonction.
Le MRPE est intégré à l’agent et est contrôlé par divers fichiers de configuration.
Activation et désactivation du MRPE
Par défaut, la prise en compte des plugins MRPE est activée. Si vous ne souhaitez pas utiliser cette fonctionnalité, vous pouvez la désactiver dans le fichier de configuration en ajoutant la définition suivante :
Limitation de la durée d'exécution
Il arrive parfois que la durée d'exécution d'un script ou d'un plugin Nagios soit imprévisible et, dans le pire des cas, qu'un plugin ne s'exécute jamais jusqu'au bout. Pour garder le contrôle dans ce cas, vous pouvez limiter la durée d'exécution maximale des plugins MRPE. La valeur indiquée ici correspond également à la valeur par défaut en secondes. Des ajustements ne sont donc nécessaires que si vous souhaitez définir un intervalle plus court ou plus long :
Ajout de plugins MRPE
Pour indiquer à l'agent où se trouve le fichier à exécuter et comment l'appeler, ajoutez une entrée dans la configuration MRPE :
Il n'est pas nécessaire de placer le fichier dans le répertoire de l'agent également, bien qu'il soit pratique de réaliser une collection de tous les fichiers au même endroit. Dans cet exemple de configuration, vous pouvez désormais voir les éléments suivants de la ligne concernée :
| Élément | Description |
|---|---|
|
Le nom du service tel qu'il doit s'afficher dans Checkmk. |
|
Programme à exécuter ; mettez les espaces entre guillemets. |
|
Options transmises : une valeur seuil de 10 pour WARN et de 20 pour CRIT. |
|
Exemple de transmission d'autres paramètres. |
Une fois le plugin MRPE configuré, il sera immédiatement actif sans redémarrage de l'agent et sera ajouté à la sortie. Dans la reconnaissance du service, vous trouverez désormais automatiquement votre nouveau service :

9.2. MRPE avec la boulangerie d’agents
Au lieu de configurer directement sur un ordinateur hôte dans le fichier de configuration spécifique à l'utilisateur, vous pouvez également définir vos plug-ins MRPE directement dans le menu Setup.
Pour ce faire, utilisez le jeu de règles « Setup > Agents > Windows, Linux, Solaris, AIX > Agent > Agent rules > Execute MRPE checks ».
L'entrée nécessaire est alors automatiquement créée dans le fichier de configuration de la boulangerie d’agents.
10. Supervision du matériel
La supervision matérielle des ordinateurs hôtes Windows est bien prise en charge par l’agent Checkmk, à condition que les plug-ins et extensions disponibles dans Checkmk Exchange soient adaptés. Cependant, il existe des situations où ni les plug-ins prêts à l’emploi ni les interfaces de programmation permettant de créer vos propres plug-ins ne sont disponibles, mais où un logiciel d’application ou un outil de supervision du matériel fourni par un fabricant de matériel peut fournir des données de supervision via SNMP.
Dans ce cas, définissez l’option « SNMP » sur le type de connexion approprié (SNMPv2 or v3 ou SNMPv1) dans la case « Monitoring agents » des propriétés de l’ordinateur hôte dans la Configuration. Les services disponibles à la fois via SNMP et l’agent Checkmk (par exemple, la charge de travail du processeur, les systèmes de fichiers, les cartes réseau) sont alors automatiquement récupérés par l’agent Checkmk et non via SNMP. Cela évite automatiquement les transmissions en double.
Pour plus d’informations, consultez l’article Supervision avec SNMP.
11. Désinstallation
Plusieurs options s’offrent à vous pour désinstaller l’agent sous Windows. Dans toutes les versions de Windows, vous trouverez une entrée dans le Panneau de configuration sous « Control Panel > Programs and Features > Uninstall a program ». Dans les versions plus récentes, vous pouvez également trouver l’entrée relative à l’agent Checkmk dans les paramètres sous « Settings > Apps > Apps & features ».
À partir de la ligne de commande pour les administrateurs, vous disposez de plusieurs options pour supprimer l'agent. Si vous disposez encore du dernier package MSI installé, vous pouvez l'utiliser pour la désinstallation comme suit :
Vous pouvez également utiliser l'instruction WMIC (Windows Management Instrumentation Command) pour désinstaller :
Si la désinstallation a réussi, vous recevrez le message « Method execution successful. » en guise de confirmation.
Remarque : la chaîne de caractères suivant « name= » doit être exactement correcte.
Si vous souhaitez désinstaller une autre version de l'agent, vous trouverez ici la liste de tous les produits installés à l'aide de la commande suivante :
Le processus peut parfois prendre beaucoup de temps et ne donne aucun message d'état, mais affiche des listes très longues. Pour filtrer les résultats, vous pouvez prolonger l'instruction avec un tuyau :
Étant donné que les différentes routines de Windows ne suppriment que les fichiers qui ont été placés là lors du processus d'installation, il est tout à fait normal que des fichiers restent dans les répertoires de l'agent. Ceux-ci peuvent être supprimés manuellement.
12. Fichiers et répertoires
12.1. Chemins d'accès sur l'ordinateur hôte sous supervision
| Chemin d'accès | Signification |
|---|---|
|
Répertoire d'installation des fichiers spécifiques au programme, notamment le programme de l'agent |
|
Fichier de configuration par défaut de l'agent. Ne modifiez pas ce fichier. |
|
Répertoire d'installation des fichiers spécifiques à l'ordinateur hôte. C'est là que se trouvent les extensions, les fichiers journaux et les fichiers de configuration spécifiques à cet ordinateur hôte. |
|
Ce fichier de configuration est créé par la boulangerie d’agents et remplace les valeurs du fichier de configuration par défaut si nécessaire. |
|
Fichier de configuration pour vos personnalisations individuelles. Ce fichier est lu en dernier et remplace les valeurs des autres fichiers de configuration si nécessaire. |
|
Répertoire des plugins qui doivent être exécutés automatiquement par l'agent et enrichir sa sortie avec des données de supervision supplémentaires. |
|
Contient des données créées, par exemple, par des fichiers journaux qui disposent de leur propre section. Celles-ci sont également ajoutées à la sortie de l'agent. Vous pouvez en savoir plus à ce sujet dans l'article Le répertoire spool. |
|
Contient une liste des connexions enregistrées auprès de l'Agent Controller. |
|
Contient une connexion préconfigurée vers une instance pour l'enregistrement automatique, intégrée au package de l'agent via la boulangerie d’agents. |
|
Stockage des fichiers de configuration pour l'agent. |
|
Répertoire pour les checks locaux personnalisés. |
|
Les extensions MRPE peuvent être stockées ici. |
|
Après chaque modification du service de l'agent Checkmk, une sauvegarde de la configuration de l'utilisateur est créée ici. |
|
Vous trouverez ici les fichiers journaux. Outre le fichier « |
12.2. Chemins d'accès sur le serveur Checkmk
| Chemin d'accès | Signification |
|---|---|
|
Répertoire de base pour les fichiers personnalisés à fournir avec un agent précompilé. |
|
Répertoire contenant le package MSI de l'agent. Ce répertoire contient également des exemples de configuration et tous les plugins d'agent. |
|
Contient, pour chaque connexion, son UUID sous la forme d'un lien symbolique pointant vers le dossier portant le nom de l'ordinateur hôte. En mode Push, ce dossier contient la sortie de l'agent. |
