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. L'agent Linux

Linux-Logo.

Checkmk permet de surveiller particulièrement bien les systèmes Linux. Cela tient moins au fait que l'équipe de développement de Checkmk se sente « chez elle » sous Linux, mais plutôt au fait que Linux est un système très ouvert qui fournit de nombreuses interfaces bien documentées et faciles à interroger pour prendre en charge un système de surveillance détaillé.

Comme la plupart de ces interfaces ne sont pas réellement accessibles via le réseau, l’installation d’un agent de surveillance est nécessaire. C’est pourquoi Checkmk dispose de son propre agent pour la surveillance de Linux. Cet agent est un simple script shell minimaliste, transparent et sécurisé.

Dans la version 2.1.0 de Checkmk, un nouveau composant, l’Agent Controller, a été ajouté à ce script d’agent. L’Agent Controller gère les connexions réseau et exécute le script d’agent lorsqu’il est appelé. Pour ce faire, il s’enregistre auprès de l’Agent Receiver, un processus qui s’exécute sur le serveur Checkmk.

Ainsi, d’une part, l’agent Linux conserve le script de l’agent, et donc ses avantages. D’autre part, il offre davantage de flexibilité que la méthode précédente consistant à exécuter le script de l’agent via un super-serveur Internet, notamment grâce au chiffrement TLS des communications ou à la compression des données.

Le mode « pull » enregistré, chiffré et compressé avec le contrôleur d’agent est disponible pour toutes les éditions de Checkmk — à condition que le serveur Checkmk et l’agent soient tous deux au moins en version 2.1.0. Le mode « push » est disponible dans Checkmk Ultimate CSE. L’inversion du sens de la communication facilite la surveillance des 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.

Tip

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 hôtes accessibles depuis Internet, vous devez donc vous assurer, avant l'installation, via les paramètres du pare-feu, que seuls les 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.

L'Agent Controller est lancé en tant que processus d'arrière-plan (démon) par le système d'initialisation systemd ; l'agent nécessite donc une distribution Linux incluant systemd. Cette exigence sera probablement satisfaite sur votre hôte, car depuis 2015, la plupart des distributions Linux ont adopté systemd comme système d'initialisation.

Cependant, l’agent maîtrise également ce que l’on appelle un mode hérité afin de prendre en charge les systèmes Linux dotés d’une architecture informatique différente de x86_64, sans gestion de paquets RPM ou DEB et sans le système d’initialisation systemd. Dans ce mode hérité, l’agent fonctionne uniquement en tant que script d’agent, c’est-à-dire sans Agent Controller et donc sans enregistrement sur le serveur Checkmk.

L'article que vous lisez ici traite de l'installation, de la configuration et de l'extension de l'agent Linux avec l'Agent Controller. Il vous montre également comment déterminer si l'agent doit être configuré en mode legacy sur votre système Linux sans Agent Controller. Dans l'article « Surveillance de Linux en mode legacy », vous trouverez toutes les informations à ce sujet.

2. Architecture de l'agent

L'agent Checkmk se compose du script de l'agent et du contrôleur d'agent, qui communique avec le récepteur d'agent sur le serveur Checkmk. Veuillez consulter l'article général sur les agents de surveillance pour plus de détails sur l'architecture commune des agents Linux et Windows. Ce chapitre traite de la mise en œuvre spécifique à Linux.

Le script de l'agent check_mk_agent est chargé de la collecte des données de surveillance et appelle les commandes système existantes pour la collecte des données dans l'ordre. Afin d'obtenir ces informations, l'agent nécessite également des privilèges d'root, l'check_mk_agent doit donc être exécuté en tant qu'utilisateur root.

Le script de l'agent est minimaliste, sécurisé, facilement extensible et transparent, car il s'agit d'un script shell dans lequel vous pouvez voir les commandes qu'il appelle.

Le contrôleur d'agent cmk-agent-ctl est le composant de l'agent chargé de transporter les données collectées par le script de l'agent. Le contrôleur est exécuté en utilisant l'utilisateur cmk-agent, qui dispose de privilèges limités (par exemple, pas de shell de connexion) et qui est utilisé uniquement pour le transfert de données. L'utilisateur cmk-agent est créé lors de l'installation du paquet de l'agent. Le contrôleur d'agent est démarré en tant que démon de systemd et y est associé en tant que service. En mode pull, il écoute sur le port TCP 6556 les connexions entrantes provenant du site Checkmk et interroge le script de l'agent via un socket Unix (d'une unité systemd).

3. Installation

Checkmk propose plusieurs méthodes d'installation de l'agent Linux, allant de l'installation manuelle du progiciel 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

Paquet RPM/DEB fourni

Installation simple d'un agent standard avec configuration manuelle via des fichiers de configuration. La routine d'installation vérifie et configure systemd et xinetd dans toutes les éditions — dans cet ordre.

X

X

Paquet RPM/DEB provenant d'Agent Bakery

Configuration via l'interface graphique, configuration individuelle par hôte possible.

X

Mises à jour automatiques

Le paquet d'Agent Bakery est installé une première fois manuellement ou via un script, puis sera mis à jour automatiquement par la suite.

X

3.1. Téléchargement des paquets RPM/DEB

Vous installez l'agent Linux en installant le paquet RPM ou DEB. Le choix entre RPM et DEB dépend de la distribution Linux sur laquelle vous souhaitez installer le paquet :

Paquet Extension Installation sur

RPM

.rpm

Systèmes basés sur Red Hat Enterprise Linux (RHEL), SLES, Fedora, openSUSE, etc.

DEB

.deb

Debian, Ubuntu, toutes les autres distributions basées sur DEB

Avant l'installation, vous devrez récupérer le paquet et le transférer sur l'hôte (par exemple à l'aide d'scp ou de WinSCP) sur lequel vous souhaitez que l'agent s'exécute.

Obtenir un paquet via l'interface graphique de Checkmk

Dans la communauté Checkmk (CRE), vous trouverez les paquets Linux de l'agent via Setup > Agents > Linux. Dans les éditions commerciales, accédez d'abord à l'Agent Bakery dans le menu « Setup » via Agents > Windows, Linux, Solaris, AIX, où vous trouverez les paquets préparés individuellement. De là, l'option de menu « Related > Linux, Solaris, AIX files » vous mènera à la liste des fichiers de l'agent :

Download page with the RPM/DEB packages.
Vous trouverez les paquets RPM et DEB sur la page de téléchargement

Tout ce dont vous avez besoin se trouve dans la première case intitulée «Packaged Agents » : les fichiers de paquets RPM et DEB prêts à l'emploi pour installer l'agent Linux avec ses paramètres par défaut.

Obtenir un paquet via HTTP

Il arrive parfois que le téléchargement sur un ordinateur, puis la copie vers la machine cible à l’aide d’scp ou de WinSCP, s’avèrent très fastidieux. Vous pouvez également télécharger le paquet depuis le serveur Checkmk directement sur le système cible via HTTP. À cette fin, les téléchargements de fichiers d’agent sont volontairement accessibles sans connexion, car après tout, ces fichiers ne contiennent aucune information confidentielle. Tout le monde peut télécharger et installer Checkmk soi-même et ainsi accéder aux fichiers.

Le moyen le plus simple de procéder est d'utiliser wget. Vous pouvez obtenir l'URL à partir du navigateur. Si vous connaissez déjà le nom du paquet, vous pouvez facilement composer l'URL vous-même. Placez /mysite/check_mk/agents/ devant le nom du fichier, comme dans l'exemple suivant pour le paquet RPM :

root@linux# wget http://mycmkserver/mysite/check_mk/agents/check-mk-agent-2.4.0p25-1.noarch.rpm
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Astuce : RPM dispose même d'un gestionnaire de paquets intégré (wget). Vous pouvez y télécharger et installer des paquets à l'aide d'une seule commande :

root@linux# rpm -U http://mycmkserver/mysite/check_mk/agents/check-mk-agent-2.4.0p25-1.noarch.rpm
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Obtenir un paquet via l'API REST

L'API REST de Checkmk propose les méthodes suivantes pour télécharger des paquets d'agents depuis le serveur Checkmk :

  • Téléchargement de l'agent fourni.

  • Téléchargement d'un agent préparé individuellement en fonction du nom d'hôte 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 depuis le serveur Checkmk directement sur la machine cible.

Par exemple, le paquet DEB contenant l'agent Linux peut être récupéré à l'aide de la commande curl suivante :

root@linux# curl -OJG "http://mycmkserver/mysite/check_mk/api/1.0/domain-types/agent/actions/download/invoke" \
--header 'Accept: application/octet-stream' \
--header 'Authorization: Bearer automation myautomationsecret' \
--data-urlencode 'os_type=linux_deb'
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Remarque : la commande 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 ce point de terminaison API REST particulier pour le téléchargement de l'agent.

Pour plus de détails sur ce point de terminaison API REST et d'autres, consultez la documentation API disponible dans Checkmk via Help > Developer resources > REST API documentation.

3.2. Installation du paquet

Une fois que vous avez récupéré le paquet RPM ou DEB et, si nécessaire, que vous l'avez copié sur l'hôte à surveiller à l'aide de scp, WinSCP ou d'autres moyens, l'installation s'effectue à l'aide d'une seule commande.

Tip

Les noms de paquets utilisés dans les commandes indiquées peuvent varier légèrement selon la manière dont vous avez téléchargé le paquet de l'agent.

Le paquet RPM est installé en tant qu'utilisateur root à l'aide de la commande rpm -U :

root@linux# rpm -U check-mk-agent-2.4.0p25-1.noarch.rpm
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

À propos, l'option -U signifie « mise à jour », mais elle permet également d'effectuer correctement une installation initiale. Cela signifie également que vous pouvez utiliser cette commande pour mettre à jour un agent existant vers la version actuelle — et utiliser la même commande pour les futures mises à jour du paquet de l'agent.

L'installation du paquet DEB — ainsi que sa mise à jour — s'effectue en tant qu'utilisateur root à l'aide de la commande dpkg -i :

root@linux# dpkg -i check-mk-agent_2.4.0p25-1_all.deb
(Reading database ... 739920 files and directories currently installed.)
Preparing to unpack .../check-mk-agent_2.4.0p25-1_all.deb ...
Unpacking check-mk-agent (2.4.0p25-1) ...
Setting up check-mk-agent (2.4.0p25-1) ...

Deploying systemd units: check-mk-agent.socket check-mk-agent-async.service cmk-agent-ctl-daemon.service check-mk-agent@.service
Deployed systemd
Creating/updating cmk-agent user account ...

WARNING: The Agent Controller is operating in an insecure mode! To secure the connection run `cmk-agent-ctl register`.

Reloading xinetd
Activating systemd unit 'check-mk-agent.socket'...
Created symlink /etc/systemd/system/sockets.target.wants/check-mk-agent.socket → /lib/systemd/system/check-mk-agent.socket.
Activating systemd unit 'check-mk-agent-async.service'...
Created symlink /etc/systemd/system/multi-user.target.wants/check-mk-agent-async.service → /lib/systemd/system/check-mk-agent-async.service.
Activating systemd unit 'cmk-agent-ctl-daemon.service'...
Created symlink /etc/systemd/system/multi-user.target.wants/cmk-agent-ctl-daemon.service → /lib/systemd/system/cmk-agent-ctl-daemon.service.
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Ici, le paquet a été installé pour la première fois sur un hôte qui ne disposait pas encore d’agent. L’utilisateur cmk-agent a été créé et systemd a été configuré. Nous aborderons dans un instant l’avertissement provisoire concernant insecure mode, c’est-à-dire le mode pull hérité.

3.3. Installation à l'aide de l'Agent Bakery

CEE Les éditions commerciales disposent d’un module logiciel, l’Agent Bakery, permettant de créer automatiquement des paquets d’agents personnalisés. Vous trouverez une description détaillée de ce module dans l’article général consacré aux agents. L’installation des paquets créés s’effectue de la même manière que celle décrite ci-dessus pour les paquets fournis.

Dans Checkmk Ultimate, vous pouvez en outre utiliser l'Agent Bakery pour doter les paquets d'agents d'une configuration d'enregistrement automatique, ce qui facilite la création automatique d'hôtes. Dans ce cas, l'enregistrement de l'agent s'effectue automatiquement après l'installation du paquet d'agent et l'enregistrement manuel, tel que décrit dans le chapitre suivant, n'est plus nécessaire.

3.4. Mises à jour automatiques

CEE Si vous utilisez l'Agent Bakery, vous pouvez également configurer les mises à jour automatiques de l'agent. Ces mises à jour sont décrites dans un article dédié.

3.5. Que se passe-t-il après l'installation ?

Si l'Agent Controller a pu être configuré avec l'systemde lors de l'installation, 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, puis affichées dans la surveillance.

Une particularité existe lorsque l’agent a été installé avec l’Agent Controller pour la première fois. Dans ce cas, l’agent passe en mode pull hérité non chiffré afin que le serveur Checkmk ne soit pas privé des données de surveillance 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.

Vous recevrez une notification concernant l'activation du mode pull hérité dans la sortie de commande lors de l'installation de l'agent. Cela se présentera comme suit dans la surveillance :

The WARN state of the 'Check_MK' service due to missing encryption.
Avertissement dans la surveillance Checkmk indiquant que TLS n'est pas encore actif

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é est utilisé pour la communication. Le mode pull hérité est désactivé et le restera. Il peut toutefois être réactivé par commande si nécessaire.

La situation est différente si l'Agent Controller n'a pas pu être enregistré en tant que démon auprès de systemd lors de l'installation. Sans Agent Controller, l'enregistrement n'est pas possible et le seul canal de communication reste le mode hérité.

Dans le chapitre suivant, vous pourrez déterminer si vous pouvez procéder à l'enregistrement en testant l'Agent Controller et l'environnement système.

Remarque : dans le jeu de règles d'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 surveillance. Vous pouvez notamment spécifier ici l'état que doit avoir le service Check_MK Agent si la configuration TLS n'a pas encore été effectuée.

4. Inscription

4.1. Présentation 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 pull hérité. 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 l'Agent Bakery 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 manuel 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 en tant qu'utilisateur Checkmk disposant d'un accès à l'API REST. Pour cela, l'utilisateur d'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 « Icon for rolling the dice. ». Vous devez enregistrer l'utilisateur avant de pouvoir utiliser le nouveau mot de passe.

Configuration requise pour l'hôte

L'enregistrement auprès de l'Agent Controller nécessite un système Linux doté d'un système d'initialisation systemd version 219 ou ultérieure et d'une architecture informatique x86_64. Consultez la section Test de l'Agent Controller et de l'environnement système pour savoir comment vérifier ces prérequis.

Configuration requise pour le serveur Checkmk

Pour enregistrer un hôte à des fins de surveillance, celui-ci doit pouvoir accéder à l'API REST du serveur Checkmk (port 443 ou 80) et à l'Agent Receiver (port 8000 pour le premier site, 8001 pour le deuxième…​). Consultez la section Environnement réseau pour l'enregistrement si votre infrastructure ne répond pas à l'une de ces exigences.

4.2. Test de l'Agent Controller et de l'environnement système

L'agent avec l'Agent Controller nécessite une distribution Linux équipée d'systemd, plus précisément d'systemd, version 219 ou plus récente.

Il y a de fortes chances que cette exigence soit satisfaite sur votre hôte, car depuis 2015, la plupart des distributions Linux ont adopté systemd comme système d'initialisation, en remplacement d'autres systèmes d'initialisation tels que SysVinit, par exemple SUSE Linux Enterprise Server à partir de la version 12, openSUSE à partir de la version 12.1, Red Hat Enterprise Linux à partir de la version 7, Fedora à partir de la version 15, Debian à partir de la version 8 et Ubuntu à partir de la version 15.04. Malheureusement, la simple comparaison du numéro de version n'apporte pas de certitude, car systemd peut être absent même sur un système Linux actuel s'il n'a été « que » mis à jour au fil des ans.

Outre la version d'systemd, certaines conditions préalables supplémentaires doivent être remplies, ce qui sera expliqué dans ce chapitre.

Attention : le mode push et l’enregistrement automatique dépendent nécessairement de l’Agent Controller et ne sont donc pas utilisables en mode legacy, un point sur lequel nous reviendrons à plusieurs reprises dans ce chapitre.

Vérifiez donc d'abord sur l'hôte sur lequel l'agent doit être installé si systemd est en cours d'exécution et de quelle version il s'agit :

root@linux# systemctl --version
systemd 245 (245.4-4ubuntu3.15)
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

La sortie de la commande ci-dessus indique que la version correcte d'systemd est installée. Si systemd n'est pas en cours d'exécution, ou s'il s'agit d'une version trop ancienne, l'Agent Controller ne peut pas être utilisé. Terminez la configuration comme décrit dans l'article Surveillance de Linux en mode hérité.

Vérifiez maintenant si l'Agent Controller peut être démarré :

root@linux# cmk-agent-ctl --version
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Le numéro de version doit apparaître dans la sortie, par exemple :

cmk-agent-ctl 2.4.0p25

Dans de rares cas, le message d'erreur suivant peut s'afficher :

bash: /usr/bin/cmk-agent-ctl: cannot execute binary file: Exec format error

Cela s'explique par le fait que votre système Linux utilise une architecture informatique différente de x86_64, par exemple l'ancienne architecture x86 32 bits ou ARM. Dans ce cas, l'Agent Controller ne peut pas être utilisé.

Effectuez la configuration comme décrit dans l'article Surveillance de Linux en mode hérité.

L'étape suivante consiste à déterminer quel programme attend des requêtes sur le port 6556 :

root@linux# ss -tulpn | grep 6556
tcp	LISTEN	0	1024	0.0.0.0:6556	0.0.0.0:*	users:(("cmk-agent-ctl",pid=1861810,fd=9))
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Le voici : cmk-agent-ctl. Les conditions requises pour une communication cryptée sont donc remplies. Si toutefois systemd, xinetd ou inetd figurent entre parenthèses, les conditions préalables à l'utilisation de l'Agent Controller ne sont pas remplies. Dans ce cas, effectuez également la configuration comme décrit dans l'article « Surveiller Linux en mode hérité ».

4.3. Ajout d'un hôte à la configuration

Commencez par créer le nouvel hôte via Setup > Hosts > Add host. Un 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'hôte, dans la section consacrée aux agents de surveillance. Vous pouvez y activer le mode « push » pour l'agent Checkmk, en alternative au mode « pull », disponible dans toutes les éditions.

4.4. Enregistrement d'un hôte auprès du serveur

L'enregistrement s'effectue à l'aide de l'cmk-agent-ctl Agent Controller, qui fournit une interface de commande pour configurer les connexions. Vous pouvez afficher l'aide relative aux commandes avec cmk-agent-ctl help, ainsi que pour des sous-commandes spécifiques disponibles, avec cmk-agent-ctl help register par exemple.

Le fait que l'hôte soit configuré pour le mode pull ou le mode push n'a aucune incidence sur les exemples de commande. L'Agent Receiver indique à l'Agent Controller dans quel mode il doit fonctionner lors de l'enregistrement.

Accédez maintenant à l'hôte à enregistrer. À partir de là, avec les privilèges d'root, envoyez une requête au site Checkmk :

root@linux# cmk-agent-ctl register \
             --hostname mynewhost \
             --server cmkserver \
             --site mysite \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL'
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Le nom d'hôte 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 URL de l'interface Web. Ces options sont complétées par le nom d'utilisateur 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.

Si les valeurs spécifiées sont correctes, il vous sera demandé de confirmer l'identité du site Checkmk auquel 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]
> Y

Confirmez 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 /var/lib/cmk-agent/registered_connections.json.

4.5. Enregistrement automatique d’un hôte auprès du serveur

Checkmk Ultimate offre la possibilité de créer automatiquement des hôtes lors de l'enregistrement. Pour l'enregistrement automatique, outre un utilisateur disposant des autorisations nécessaires pour enregistrer des hôtes, vous devez disposer d'au moins un dossier configuré pour contenir les hôtes à créer automatiquement.

Si ces conditions sont remplies, vous pouvez également effectuer l'enregistrement, y compris la création automatique d'hôtes, via la ligne de commande.

En général, vous utiliserez la procédure de configuration d'Agent Bakery, qui inclut le fichier de configuration /var/lib/cmk-agent/pre_configured_connections.json dans le paquet de l'agent et qui effectue l'enregistrement automatiquement lors de l'installation. L'appel de ligne de commande présenté ici est donc principalement destiné aux tests et au débogage, par exemple pour essayer vos propres étiquettes d'agent avec l'option --agent-labels <KEY=VALUE>.

root@linux# cmk-agent-ctl register-new \
             --server cmkserver \
             --site mysite \
             --agent-labels testhost:true \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL'
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

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 hôte sur le site Checkmk. Le nom de l'hôte est celui stocké dans la variable d'environnement $HOSTNAME. La confirmation du certificat qui s'ensuit est identique à celle présentée dans la section précédente.

Le fait que l'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'hôte n'apparaisse dans la surveillance.

4.6. Vérification de la relation de confiance

La commande cmk-agent-ctl status affiche désormais exactement une relation de confiance avec le serveur Checkmk :

root@linux# cmk-agent-ctl status
Connection: 12.34.56.78:8000/mysite
	UUID: d38e7e53-9f0b-4f11-bbcf-d19617971595
	Local:
		Connection type: pull-agent
		Certificate issuer: Site 'mysite' local CA
		Certificate validity: Mon, 21 Feb 2022 11:23:57 +0000 - Sat, 24 Jun 3020 11:23:57 +0000
	Remote:
		Connection type: pull-agent
		Host name: mynewhost
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

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 le site sera interrompue et aucune donnée d'agent ne sera plus fournie à l'hôte à des fins de surveillance.

4.7. Enregistrement par procuration

Pour faciliter l'enregistrement de plusieurs hôtes, tout hôte sur lequel l'agent est installé peut effectuer un enregistrement au nom d'autres hôtes. Le processus d'enregistrement exporte un fichier JSON, qui peut ensuite être transféré vers l'hôte cible et y être importé. Comme précédemment, l'hôte enregistré dans la tâche doit déjà être configuré sur le site.

Tout d'abord, sur n'importe quel 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 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 :

root@linux# cmk-agent-ctl proxy-register \
    --hostname mynewhost3 \
    --server cmkserver \
    --site mysite \
    --user agent_registration > /tmp/mynewhost3.json
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Nous transférons ensuite le fichier /tmp/mynewhost3.json vers l'hôte que nous avons enregistré et importons ce fichier :

root@linux# cmk-agent-ctl import /tmp/mynewhost3.json
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Ce processus est également possible en une seule étape à l'aide d'un pipeline où la sortie de `cmk-agent-ctl proxy-register` est transmise en entrée à `ssh hostname cmk-agent-ctl import` :

root@linux# cmk-agent-ctl proxy-register \
             --hostname mynewhost3 \
             --server cmkserver \
             --site mysite \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL' | \
             ssh root@mynewhost3 cmk-agent-ctl import
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

4.8. Ajout de l'hôte à la surveillance

Une fois l'enregistrement terminé, effectuez un test de connexion et une découverte des services dans la configuration du serveur Checkmk. Enfin, incluez les services découverts dans la surveillance en activant les modifications.

Si le test de connexion échoue, reportez-vous au chapitre suivant pour obtenir des informations sur les tests et le dépannage.

4.9. Désenregistrer un hôte

Vous pouvez également désenregistrer un hôte.

Sur un hôte connecté au serveur Checkmk, vous pouvez révoquer la confiance. Ici, dans la commande suivante, l'identifiant unique universel (UUID) à spécifier est celui généré par la commande « cmk-agent-ctl status » :

root@linux# cmk-agent-ctl delete d38e7e53-9f0b-4f11-bbcf-d19617971595
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Pour supprimer toutes les connexions de l'hôte et rétablir en outre le mode pull hérité, entrez la commande suivante :

root@linux# cmk-agent-ctl delete-all --enable-insecure-connections
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Par la suite, l'agent se comporte comme après l'installation initiale et avant le premier enregistrement, et envoie 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'option de menu « Host > Remove TLS registration » et confirmez l'invite.

Si vous préférez la ligne de commande : Sur le serveur Checkmk, pour chaque connexion d'un hôte sous surveillance, il existe un lien symbolique avec l'UUID qui pointe vers le dossier contenant la sortie de l'agent :

OMD[mysite]:~$ cd ~/var/agent-receiver/received-outputs
OMD[mysite]:~/var/agent-receiver/received-outputs$ ls -l d38e7e53-9f0b-4f11-bbcf-d19617971595
lrwxrwxrwx 1 mysite mysite 67 Feb 23 07:18 d38e7e53-9f0b-4f11-bbcf-d19617971595 -> /omd/sites/mysite/tmp/check_mk/data_source_cache/push-agent/mynewhost
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

4.10. Basculer entre les modes push et pull

Dans Checkmk Ultimate CSE, vous pouvez faire passer les 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 cours, ou si une rétrogradation vers Checkmk Pro CSE — 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’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 surveillance 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 push. Une vérification 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’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 surveillance. Mais, bien sûr, d’autres diagnostics sont disponibles lorsque vous vous connectez directement à l’hôte surveillé lui-même.

Dans les sections suivantes, nous passerons du script de l’agent à l’Agent Controller et au port TCP 6556, puis au site 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é les erreurs éventuelles, vous pouvez redémarrer la découverte de service et finaliser l’intégration dans la surveillance.

Important

Lorsque le script de l'agent est appelé directement dans un shell, d'autres variables d'environnement peuvent être disponibles que lorsqu'il est appelé par l'Agent Controller. Pour analyser la sortie du script de l'agent, vous devriez donc utiliser l'Agent Controller en mode dump si possible.

5.1. Sortie du script de l'agent

Le script de l'agent est un simple script shell qui récupère des données sur votre système et les affiche sous forme de texte au formatage libre. Vous pouvez appeler ce script directement depuis la ligne de commande. La sortie pouvant être assez longue, l'option less permettant de faire défiler la sortie est très pratique ici. Vous pouvez quitter le script à l'aide de la touche Q :

root@linux# check_mk_agent | less
<<<check_mk>>>
Version: 2.4.0p25
AgentOS: linux
Hostname: mynewhost
AgentDirectory: /etc/check_mk
DataDirectory: /var/lib/check_mk_agent
SpoolDirectory: /var/lib/check_mk_agent/spool
PluginsDirectory: /usr/lib/check_mk_agent/plugins
LocalDirectory: /usr/lib/check_mk_agent/local
AgentController: cmk-agent-ctl 0.1.0
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Cela vous permet de vérifier si le script de l'agent, vos plug-ins et vos vérifications locales sont correctement installés.

À noter que vous n'avez pas besoin d'être administrateur pour appeler l'agent. Cependant, la sortie ne contiendra alors pas certaines informations qui nécessitent des privilèges d'root pour être obtenues (par exemple, les informations sur les chemins multiples et les sorties de ethtool).

5.2. Le script de l'agent en mode débogage

Afin d'éviter que les messages d'erreur provenant de plug-ins ou de commandes inactifs ne « contaminent » les données requises, le script de l'agent supprime généralement le canal d'erreur standard (STDERR). Si vous recherchez un problème spécifique, vous pouvez réactiver le STDERR en appelant le script de l'agent dans un mode de débogage spécial.

Au préalable, vous devez vérifier si le script de l'agent et le contrôleur d'agent en mode vidage fournissent une sortie identique et, si nécessaire, vous assurer que l'environnement est identique. Cela peut être effectué en définissant des variables dans une vérification de plug-in/locale ou dans le shell. Vous pouvez créer un vidage de l'environnement en ajoutant la ligne

env > /tmp/cmk_agent_environment.txt

à un fichier de plug-in, puis en vérifiant le contenu du fichier après l’exécution par le contrôleur d’agent.

Les informations de débogage supplémentaires sont alors générées à l'aide de l'option -d. Toutes les commandes shell exécutées par le script seront également générées. Pour pouvoir utiliser less ici, vous devez combiner la sortie standard (STDOUT) et le canal d'erreur avec 2>&1 :

root@linux# check_mk_agent -d 2>&1 | less
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

5.3. Environnement réseau pour l'enregistrement

Si l'enregistrement d'un hôte échoue avant même qu'un certificat ne soit présenté, la connaissance des modes de communication peut aider à identifier le problème — et bien sûr à le résoudre.

Après avoir saisi la commande « cmk-agent-ctl register », le contrôleur d’agent demande d’abord au serveur Checkmk le port du récepteur d’agent à l’aide de l’API REST. Dans un deuxième temps, une connexion au récepteur d’agent est établie pour demander le certificat. Vous pouvez simuler la première requête sur l’hôte à l’aide d’un programme tel que curl :

root@linux# curl -v --insecure https://mycmkserver/mysite/check_mk/api/1.0/domain-types/internal/actions/discover-receiver/invoke
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Le paramètre --insecure indique à curl d'ignorer la vérification du certificat. Ce comportement reflète celui du contrôleur d'agent à cette étape. La réponse ne comporte que quelques octets et contient le numéro de port de l'Agent Receiver. Pour le premier site, il s'agit généralement de 8000, pour le 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'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'hôte que vous essayez d'enregistrer utilise un proxy HTTP, curl l'utilisera, mais cmk-agent-ctl ne le fera pas avec les paramètres 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 de déterminer le port de l'Agent Receiver et de le noter. Pour ce faire, sur le serveur Checkmk, connectez-vous en tant qu'utilisateur du site :

OMD[mysite]:~$ omd config show | grep AGENT_RECEIVER
AGENT_RECEIVER: on
AGENT_RECEIVER_PORT: 8000
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Vous pouvez désormais spécifier le port lors de la saisie de la commande 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 :

root@linux# cmk-agent-ctl register \
             --hostname mynewhost \
             --server mycmkserver:8000 \
             --site mysite \
             --user agent_registration \
             --password 'PTEGDYXBFXVGNDPRL'
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Le port 8000 doit également être accessible depuis l'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'hôte à enregistrer 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 politiques de sécurité de votre environnement ne permettent pas l'accès à l'Agent Receiver, il est toujours possible d'utiliser l'enregistrement par proxy sur le serveur Checkmk.

5.4. L'Agent Controller en mode dump

L'Agent Controller fournit sa propre sous-commande « dump » qui affiche la sortie complète de l'agent au fur et à mesure de son arrivée dans la surveillance :

root@linux# cmk-agent-ctl dump | less
<<<check_mk>>>
Version: 2.4.0p25
AgentOS: linux
Hostname: mynewhost
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Cela vous permet de vérifier que les données provenant du script de l'agent sont bien parvenues au contrôleur d'agent. Cette sortie ne prouve pas encore que l'agent est également accessible via le réseau.

Dans certains cas, la sortie ressemblera à ceci :

ERROR [cmk_agent_ctl] Error collecting monitoring data.

Caused by:
    Connection refused (os error 111)

Ce serait le cas lorsque le socket de l'agent ne s'exécute pas en arrière-plan — immédiatement après une mise à jour, par exemple. Redémarrez ce processus d'arrière-plan :

root@linux# systemctl restart check-mk-agent.socket
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Si l'cmk-agent-ctl dumpation échoue à nouveau, vérifiez si un programme écoute sur le port 6556 et, le cas échéant, lequel :

root@linux# ss -tulpn | grep 6556
tcp	LISTEN	0	1024	0.0.0.0:6556 0.0.0.0:*	users:(("cmk-agent-ctl",pid=1861810,fd=9))
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Si la sortie est vide ou si une commande autre que cmk-agent-ctl figure entre parenthèses, les conditions système requises pour l'utilisation de l'Agent Controller ne sont pas remplies. Dans ce cas, effectuez la configuration comme décrit dans l'article Surveiller Linux en mode hérité.

5.5. Test de connexion à distance

Si, en mode pull, il a été vérifié que le script de l'agent et ses plug-ins 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'hôte :

root@linux# echo | nc 10.76.23.189 6556
16
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

La sortie 16 indique que la connexion a été établie avec succès et que 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 un test de connexion à distance échoue, cela est généralement dû au paramétrage du pare-feu. Dans ce cas, configurez iptables ou nftables pour autoriser l'accès au port TCP 6556 depuis le serveur Checkmk.

Si la communication entre l'agent et le serveur Checkmk n'est toujours pas chiffrée (comme en mode pull hérité), ou si elle ne l'est pas et ne le sera pas (comme en mode hérité), cette commande vous fournira la sortie complète non chiffrée de l'agent au lieu de l'16.

Remarque : pour effectuer d'autres diagnostics sur le serveur Checkmk, consultez l'article général sur les agents de surveillance.

5.6. Dépannage de l'agent en mode push

Dans le dossier « ~/var/agent-receiver/received-outputs/ » de votre site Checkmk, vous trouverez, pour chaque hôte enregistré, un lien symbolique dont le nom correspond à l'UUID de l'hôte. Pour les hôtes en mode push, ce lien symbolique pointe vers le dossier contenant la sortie de l'agent ; pour les hôtes en mode pull, il pointe vers un fichier inexistant portant le nom de l'hôte tel qu'il est utilisé dans la surveillance.

En fonction de l'ancienneté de la sortie de l'agent mise 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 afficher l'état des dernières transmissions et tentatives de transmission sur l'hôte à l'aide de la commande `systemctl status cmk-agent-ctl-daemon`. Des lignes telles que celles ci-dessous 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 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 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 hôtes sur lesquels des connexions vers plusieurs sites 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’hôte. Vous pouvez effectuer 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 hôte, il faut généralement compter environ deux minutes avant que l'hôte n'apparaisse dans la surveillance.

Si une connexion en mode pull vers un autre site a été ajoutée ultérieurement à un hôte initialement configuré en mode push, il faudra attendre jusqu'à cinq minutes avant que le port 6556 ne s'ouvre. Vous pouvez ouvrir le port immédiatement en redémarrant le service cmk-agent-ctl-daemon.

6. Sécurité

6.1. Considérations préliminaires

La sécurité est un critère important pour tout logiciel, et la surveillance ne fait pas exception. Étant donné que l’agent de surveillance 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 commandes ou des composants de script via le port de surveillance 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 à partir de la version 2.1.0 de Checkmk. Ici, le serveur Checkmk « ping » l’hôte surveillé, 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 de renouveler le 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.

6.3. Restriction de l'accès via les adresses IP

Étant donné que seuls les serveurs Checkmk autorisés peuvent récupérer des données et que les serveurs non autorisés échouent après quelques octets d’échange d’informations d’identification, le risque d’une attaque par déni de service (DoS) est très faible. Pour cette raison, aucune restriction d'accès supplémentaire n'est actuellement prévue. Vous pouvez bien sûr bloquer le port 6556 contre tout accès non autorisé via iptables. Toute règle existante qui a été transférée aux clients via l'Agent Bakery afin de restreindre l'accès à certaines adresses IP est ignorée par l'Agent Controller.

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 script 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’hôte et du serveur Checkmk des processus supplémentaires de chiffrement et de déchiffrement.

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, renommez le fichier de configuration /etc/check_mk/encryption.cfg sur l’hôte de l’agent.

Dans 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.

CEE La désactivation du chiffrement avec Agent Bakery 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 les paquets et à distribuer les nouveaux agents. Le fichier de configuration /etc/check_mk/encryption.cfg sera automatiquement modifié pour vous et inclus dans les paquets d’agent. 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 script 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 hôtes enregistrés pourront fournir des données de surveillance.

7. Désactivation des sections

La sortie de l'agent Checkmk est divisée en sections. Chacune de ces sections contient des informations connexes et correspond généralement à la sortie d'une commande de diagnostic. 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 commandes correspondantes ne seront tout simplement pas exécutées par l'agent, ce qui peut permettre de gagner du temps de calcul. D'autres raisons de désactiver une section peuvent être que vous n'êtes tout simplement pas intéressé par certaines informations provenant d'un certain groupe d'hôtes, ou qu'un hôte donné fournit des valeurs erronées et que vous souhaitez suspendre temporairement la récupération de ces données.

En tant qu'utilisateur de l'une des éditions commerciales, vous pouvez simplement créer une règle via Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Disabled sections (Linux agent) ; cette règle sera alors prise en compte par Agent Bakery.

List of agent rules for the Linux agent.
Vous pouvez ici désactiver des sections par règle

Vous trouverez généralement une case à cocher distincte pour chaque section pouvant être désactivée. Pour chaque case cochée, vous trouverez alors — une fois que l’agent nouvellement packagé aura été installé sur les hôtes sélectionnés — une entrée distincte dans le fichier de configuration d’Agent Bakery /etc/check_mk/exclude_sections.cfg. Par exemple, si vous sélectionniez Running processes et Systemd services, le fichier de configuration correspondant ressemblerait à ceci :

/etc/check_mk/exclude_sections.cfg
MK_SKIP_PS=yes
MK_SKIP_SYSTEMD=yes

Les utilisateurs de CRE Checkmk Community peuvent créer manuellement le fichier /etc/check_mk/exclude_sections.cfg ci-dessus et y indiquer les sections à désactiver. Toutes les sections pouvant être désactivées sont répertoriées dans le fichier ~/share/check_mk/agents/cfg_examples/exclude_sections.cfg.

8. Extension de l'agent à l'aide de plug-ins

8.1. Que sont les plug-ins d'agent ?

Le script de l'agent /usr/bin/check_mk_agent contient un ensemble complet de sections qui fournissent des données de surveillance pour divers plug-ins de vérification, lesquels sont ensuite automatiquement détectés par la découverte de services. Cela inclut toutes les surveillances importantes pour le système d'exploitation.

De plus, il est possible d’étendre l’agent à l’aide de plug-ins d’agent. Il s’agit de petits scripts ou programmes appelés par l’agent et qui l’étendent avec des sections supplémentaires contenant des données de surveillance complémentaires. Le projet Checkmk fournit toute une série de tels plug-ins qui, s’ils sont correctement installés et configurés, fournissent automatiquement de nouveaux services via la découverte de services.

Pourquoi ces plug-ins ne sont-ils pas simplement intégrés en dur dans l’agent ? Pour chacun des plug-ins, l’une des raisons suivantes s’applique :

  • Le plug-in est écrit dans un langage de programmation autre que le shell et ne peut donc pas être implémenté en ligne (exemple : mk_logwatch).

  • Le plug-in nécessite dans tous les cas une configuration, sans laquelle il ne fonctionnerait pas (exemple : mk_oracle).

  • Le plug-in est tellement spécialisé que très peu d'utilisateurs en auraient besoin (exemple : plesk_domains).

8.2. Installation manuelle

Les plug-ins fournis avec Linux et Unix sont tous disponibles sur la page de téléchargement des agents, dans le menu Configuration (comme décrit dans le chapitre consacré à l'installation), dans la section Plugins :

Download page with agent plug-ins.
Le début de la longue liste des plug-ins d'agent disponibles
Tip

Les plug-ins sont également disponibles sur le serveur Checkmk sous ~/share/check_mk/agents/plugins.

Pour tous les plug-ins d'agent que nous fournissons, il existe des plug-ins de vérification correspondants qui permettent d'évaluer les données de l'agent et de créer des services. Ceux-ci sont déjà installés, de sorte que les nouveaux services détectés peuvent être immédiatement identifiés et configurés.

Remarque : avant d'installer un plug-in sur un hôte, consultez le fichier correspondant. Vous y trouverez souvent des informations importantes sur l'utilisation correcte du plug-in.

L'installation proprement dite est ensuite simple : Copiez le fichier dans /usr/lib/check_mk_agent/plugins. Assurez-vous qu'il est exécutable. Si ce n'est pas le cas, utilisez un chmod 755, sinon l'agent n'exécutera pas le plug-in. Notez que, en particulier si vous ne transférez pas les fichiers via scp mais que vous les récupérez via HTTP depuis la page de téléchargement, l'autorisation d'exécution sera perdue.

Une fois que le plug-in est exécutable et se trouve dans le répertoire approprié, il sera automatiquement invoqué par l'agent et une nouvelle section sera créée dans la sortie de l'agent. Cette section porte généralement le même nom que le plug-in. Les plug-ins complexes, tels que mk_oracle par exemple, créent même toute une série de nouvelles sections.

8.3. Configuration

Certains plug-ins nécessitent un fichier de configuration dans /etc/check_mk/ pour fonctionner. Pour d’autres, la configuration est facultative et permet d’activer des fonctionnalités spéciales ou des personnalisations. D’autres encore fonctionneront tels quels. Il existe plusieurs sources d’informations sur un plug-in :

  • La documentation des plug-ins de contrôle associés sur votre site Checkmk, accessible via Setup > Services > Catalog of check plugins.

  • Les commentaires dans le plug-in lui-même (souvent très utiles !).

  • Un article pertinent dans ce manuel, sur la surveillance d'Oracle par exemple.

8.4. Exécution asynchrone

Les plug-ins d'agent sont généralement exécutés en séquence. Vous pouvez également choisir de faire exécuter les plug-ins de manière asynchrone. Ceci est très utile si les plug-ins ont une durée d'exécution longue et que les données d'état collectées n'ont de toute façon pas besoin d'être régénérées toutes les minutes.

L'exécution asynchrone ne se configure pas via un fichier ; vous devez plutôt créer un sous-répertoire dans /usr/lib/check_mk_agent/plugins dont le nom correspond à un nombre : un nombre de secondes. Les plug-ins de ce répertoire sont non seulement exécutés de manière asynchrone, mais vous spécifiez également un temps d'attente minimum en secondes avant que le plug-in ne soit à nouveau exécuté. Si l'agent est interrogé à nouveau avant l'expiration de ce délai, il utilise les données mises en cache lors de la dernière exécution du plug-in. Cela vous permet de configurer un intervalle plus long que la durée habituelle d'une minute pour le plug-in.

L'exemple suivant montre comment faire passer le plug-in « my_foo_plugin » d'une exécution synchrone à une exécution asynchrone avec un intervalle de 5 minutes (ou 300 secondes) :

root@linux# cd /usr/lib/check_mk_agent/plugins
root@linux:/usr/lib/check_mk_agent/plugins# mkdir 300
root@linux:/usr/lib/check_mk_agent/plugins# mv my_foo_plugin 300
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Remarque : certains plug-ins implémentent automatiquement l'exécution asynchrone. C'est le cas notamment d'mk_oracle. Installez ces plug-ins directement dans l'/usr/lib/check_mk_agent/plugins.

8.5. Installation à l'aide d'Agent Bakery

CEE Dans les éditions commerciales, les plug-ins inclus peuvent être configurés via Agent Bakery. Cela prend en charge à la fois l'installation du plug-in proprement dit et la création correcte de son fichier de configuration, si nécessaire.

Chaque plug-in est configuré via une règle d'agent. Vous trouverez les ensembles de règles appropriés dans Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Agent Plugins :

Page with rules for configuring agent plug-ins.
Liste des règles pour les plug-ins d'agent

8.6. Exécution manuelle

Les plug-ins d'agent étant des programmes exécutables, vous pouvez également les lancer manuellement à des fins de test et de diagnostic. Cependant, certains plug-ins nécessitent que l'agent définisse certaines variables d'environnement pour trouver leur fichier de configuration, par exemple. Définissez ces variables manuellement avant l'exécution :

root@linux# export MK_LIBDIR=/usr/lib/check_mk_agent
root@linux# export MK_CONFDIR=/etc/check_mk
root@linux# export MK_VARDIR=/var/lib/check_mk_agent
root@linux# /usr/lib/check_mk_agent/plugins/mk_foobar
<<<foobar>>>
FOO BAR BLA BLUBB 17 47 11
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Certains plug-ins utilisent également des options d'appel spéciales pour le débogage. Il vous suffit de consulter le fichier du plug-in.

9. Intégration des anciens plug-ins de vérification Nagios

9.1. Exécution des plug-ins via MRPE

Il existe deux bonnes raisons de continuer à utiliser les plug-ins Nagios sur Checkmk. Si vous avez migré votre surveillance d’une solution basée sur Nagios vers Checkmk, vous pouvez continuer à utiliser d’anciens plug-ins de vérification pour lesquels il n’existe pas encore d’équivalent Checkmk. Dans de nombreux cas, il s’agit de plug-ins développés en interne en Perl ou en shell.

La deuxième raison est la véritable surveillance 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 se configure à l’aide d’un simple fichier texte, que vous créez sous le nom /etc/check_mk/mrpe.cfg. Vous y spécifiez un appel de plugin par ligne, ainsi que le nom que vous souhaitez que Checkmk utilise pour le service qu’il crée automatiquement à cet effet. Voici un exemple :

/etc/check_mk/mrpe.cfg
Foo_Application /usr/local/bin/check_foo -w 60 -c 80
Bar_Extender /usr/local/bin/check_bar -s -X -w 4:5

Remarque : les plug-ins Nagios ne doivent pas être placés dans le répertoire /usr/lib/check_mk_agent/plugins. Ce répertoire est réservé aux plug-ins de l'agent. En dehors de ce répertoire, vous êtes libre de choisir l'emplacement de votre choix, à condition que l'agent puisse y trouver et y exécuter les plug-ins.

Si vous exécutez maintenant l'agent localement, vous trouverez une nouvelle section pour chaque plugin intitulée « <<mrpe>> », qui contient le nom, le code de sortie et la sortie du plugin. Vous pouvez vérifier cela à l'aide de la commande pratique suivante : grep

root@linux# check_mk_agent | grep -A1 '^...mrpe'
<<<mrpe>>>
(check_foo) Foo_Application 0 OK - Foo server up and running
<<<mrpe>>>
(check_bar) Bar_Extender 1 WARN - Bar extender overload 6.012|bar_load=6.012
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Les codes « 0 » et « 1 » dans la sortie correspondent aux codes de sortie des plug-ins et suivent le schéma conventionnel : 0 = OK, 1 = WARN, 2 = CRIT et 3 = UNKNOWN.

Le reste sera désormais effectué automatiquement par Checkmk. Une fois que vous aurez lancé une détection de services pour l'hôte, les deux nouveaux services apparaîtront comme disponibles. Cela ressemblera à ceci :

List of detected services for the plug-ins set up via MRPE.
Un service est détecté pour chacun des deux plug-ins MRPE

À propos, en raison de la syntaxe du fichier, le nom ne peut pas contenir d'espaces. Cependant, vous pouvez remplacer un espace par %20 en utilisant la même syntaxe que dans les URL (le code ASCII 32 pour l'espace correspond à l'hexadécimal 20) :

/etc/check_mk/mrpe.cfg
Foo%20Application /usr/local/bin/check_foo -w 60 -c 80
Bar%20Extender /usr/local/bin/check_bar -s -X -w 4:5

9.2. Exécution asynchrone

Notez que tous les plug-ins que vous répertoriez dans mrpe.cfg seront exécutés de manière synchrone, dans l'ordre. Pour cette raison, les plug-ins ne doivent pas avoir un temps d'exécution trop long. Si un plug-in prend trop de temps, l'exécution de tous les autres sera retardée. Cela peut entraîner un dépassement du délai d'attente pour l'exécution complète du script de l'agent et empêcher la surveillance fiable de l'hôte.

Si vous avez vraiment besoin de plug-ins dont l'exécution est plus longue, vous devriez les faire passer en exécution asynchrone, comme pour les plug-ins d'agent classiques, et ainsi éviter de tels problèmes. Pour ce faire, il suffit de spécifier une durée en secondes pendant laquelle un résultat calculé doit rester valide. Pour configurer un délai d'expiration de cinq minutes, définissez l'expression « (interval=300) » après le nom du service dans « mrpe.cfg » :

/etc/check_mk/mrpe.cfg
Foo_Application (interval=300) /usr/local/bin/check_foo -w 60 -c 80
Bar_Extender /usr/local/bin/check_bar -s -X -w 4:5

Cette fonctionnalité présente plusieurs avantages :

  • Le plug-in s'exécutera dans un processus en arrière-plan et ne ralentira plus l'exécution de l'agent.

  • Comme l'agent n'attend pas l'exécution, le résultat n'est pas transmis avant le prochain appel de l'agent.

  • Le plug-in ne sera réexécuté qu'au plus tôt après 300 secondes. Jusqu'à ce moment-là, l'ancien résultat est réutilisé.

Cela vous permet donc d'exécuter des tests qui nécessitent un peu plus de temps de calcul ainsi que sur des intervalles plus longs, sans avoir à configurer quoi que ce soit sur le serveur Checkmk.

9.3. MRPE avec l'Agent Bakery

CEE Les utilisateurs des éditions commerciales peuvent également configurer MRPE avec l'Agent Bakery. C'est l'ensemble de règles « Setup > Agents > Windows, Linux Solaris, AIX > Agent Rules > Generic Options > Execute MRPE checks » qui s'en charge. Vous pouvez y configurer les mêmes éléments que ceux décrits ci-dessus. Le fichier « mrpe.cfg » sera alors généré automatiquement par l'Agent Bakery.

Rule for MRPE configuration in the Agent Bakery.
Les MRPE peuvent être facilement configurés à l'aide d'une règle

Intégration des plug-ins

Vous pouvez également inclure les plug-ins de vérification dans le paquet livré. L'agent est alors complet et ne nécessite aucune installation manuelle de fichiers supplémentaires. Voici comment cela fonctionne :

  1. Créez le répertoire ~/local/share/check_mk/agents/custom sur le serveur Checkmk.

  2. Créez-y un sous-répertoire, par exemple « my_mrpe_plugins ».

  3. Créez à nouveau le sous-répertoire bin à l'intérieur.

  4. Copiez vos plug-ins dans le dossier bin.

  5. Créez une règle dans Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Generic Options > Deploy custom files with agent.

  6. Sélectionnez my_mrpe_plugins, enregistrez les paramètres modifiés et cliquez sur le bouton «Bake» !

Les plug-ins de vérification seront désormais installés dans le répertoire bin par défaut de votre agent. Par défaut, il s'agit de /usr/bin. Ainsi, lors de la configuration des vérifications MRPE, utilisez /usr/bin/check_foo au lieu de /usr/local/bin/check_foo.

10. Surveillance du matériel

La surveillance d'un serveur Linux de la manière la plus complète possible implique bien sûr également la surveillance de son matériel. Cette surveillance s'effectue en partie directement à l'aide de l'agent Checkmk, et en partie via des plug-ins spéciaux. De plus, il existe encore des cas où vous pouvez mettre en place une surveillance via SNMP ou même via une carte de gestion distincte.

10.1. Surveillance des valeurs SMART

Les disques durs modernes sont presque toujours équipés de la technologie S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology). Ce système enregistre en continu des données sur l'état du disque dur ou du SSD, et Checkmk peut récupérer ces valeurs à l'aide du plug-in smart et en évaluer les plus importantes. Pour que le plug-in fonctionne après son installation, les conditions suivantes doivent être remplies :

  • Le paquet smartmontools doit être installé. Vous pouvez l'installer sur toutes les distributions modernes via le gestionnaire de paquets correspondant.

  • Si les disques durs sont connectés à un contrôleur RAID et que celui-ci permet d'accéder aux valeurs SMART, l'outil correspondant doit également être installé. Les outils pris en charge sont tw_cli (3ware) et megacli (LSI).

Si ces conditions sont remplies et que le plug-in est installé, les données sont automatiquement récupérées et ajoutées à la sortie de l'agent. Dans Checkmk, vous pouvez ensuite activer directement les nouveaux services :

List of SMART services found in service discovery.
Services SMART détectés par la découverte de services

Comme le montre la capture d'écran, si cmd_timeout se produit occasionnellement, basculez le plug-in en exécution asynchrone à des intervalles de quelques minutes.

10.2. Surveillance via IPMI

IPMI (Intelligent Platform Management Interface) est une interface de gestion du matériel qui permet également de surveiller le matériel. Checkmk utilise freeipmi à cette fin pour accéder directement au matériel sans passer par le réseau. freeipmi s’installe à partir des sources de paquets et est alors immédiatement prêt à l’emploi, de sorte que les données seront transmises dès le prochain appel de Checkmk.

Si l'freeipmi n'est pas disponible ou s'il existe d'autres raisons de ne pas l'installer, ipmitool peut également être utilisé. ipmitool est souvent déjà présent sur le système et il suffit de lui fournir un pilote de périphérique IPMI, tel que celui fourni par le paquet openipmi. Là encore, vous n'avez rien d'autre à faire après l'installation, et les données seront collectées automatiquement par Checkmk.

Pour le diagnostic des erreurs, vous pouvez également exécuter les outils manuellement dans un shell hôte. Une fois que vous avez installé le paquet freeipmi, vous pouvez vérifier ses fonctions à l'aide de la commande suivante :

root@linux# ipmi-sensors Temperature
32 Temperature_Ambient 20.00_C_(1.00/42.00) [OK]
96 Temperature_Systemboard 23.00_C_(1.00/65.00) [OK]
160 Temperature_CPU_1 31.00_C_(1.00/90.00) [OK]
224 Temperature_CPU_2 NA(1.00/78.00) [Unknown]
288 Temperature_DIMM-1A 54.00_C_(NA/115.00) [OK]
352 Temperature_DIMM-1B 56.00_C_(NA/115.00) [OK]
416 Temperature_DIMM-2A NA(NA/115.00) [Unknown]
480 Temperature_DIMM-2B NA(NA/115.00) [Unknown]
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Si ipmitool a été installé, vous pouvez vérifier la sortie de ses données à l'aide de la commande suivante :

root@linux# ipmitool sensor list
UID_Light 0.000 unspecified ok na na 0.000 na na na
Int._Health_LED 0.000 unspecified ok na na 0.000 na na na
Ext._Health_LED 0.000 unspecified ok na na 0.000 na na na
Power_Supply_1 0.000 unspecified nc na na 0.000 na na na
Fan_Block_1 34.888 unspecified nc na na 75.264 na na na
Fan_Block_2 29.792 unspecified nc na na 75.264 na na na
Temp_1 39.000 degrees_C ok na na -64.000 na na na
Temp_2 16.000 degrees_C ok na na -64.000 na na na
Power_Meter 180.000 Watts cr na na 384.00
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

10.3. Outils spécifiques aux fabricants

De nombreux grands fabricants de serveurs proposent également leurs propres outils pour collecter les informations matérielles et les rendre disponibles via SNMP. Les conditions préalables suivantes doivent être remplies afin de récupérer ces données et de les fournir à Checkmk :

  • Un serveur SNMP est configuré sur l’hôte Linux.

  • L'outil du fabricant est installé (par exemple, OpenManage de Dell ou SuperDoctor de Supermicro).

  • L'hôte est configuré dans Checkmk pour la surveillance via SNMP en plus de l'agent Checkmk. Consultez l'article sur la surveillance avec SNMP pour savoir comment procéder.

Les nouveaux services de surveillance matérielle pris en charge sont alors automatiquement détectés et aucun autre plug-in n’est nécessaire.

10.4. Surveillance supplémentaire via la carte de gestion

Une carte de gestion peut être configurée pour chaque hôte et des données supplémentaires peuvent être récupérées via SNMP. Les services ainsi détectés sont alors également attribués à l’hôte.

La configuration de la carte de gestion est très simple. Il suffit de saisir le protocole, l'adresse IP et les données d'accès pour SNMP dans les propriétés de l'hôte, puis d'enregistrer ces nouveaux paramètres :

The configuration of the management board for SNMP in the properties of the host.
La carte de gestion est configurée pour SNMP dans les propriétés de l'hôte, sous Configuration

Lors d’une découverte de services, les services nouvellement détectés seront ensuite activés comme d’habitude.

11. Désinstallation

Tout comme pour l'installation, la désinstallation de l'agent s'effectue également à l'aide du gestionnaire de paquets du système d'exploitation. Indiquez ici le nom du paquet installé, et non le nom du fichier RPM/DEB d'origine.

Voici comment déterminer quel paquet DEB est installé :

root@linux# dpkg -l | grep check-mk-agent
ii  check-mk-agent          2.4.0p25-1          all          Checkmk Agent for Linux
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

La désinstallation du paquet DEB s'effectue ensuite à l'aide de la commande « dpkg --purge » :

root@linux# dpkg --purge check-mk-agent
(Reading database ... 739951 files and directories currently installed.)
Removing check-mk-agent (2.4.0p25-1) ...
Removing systemd units: check-mk-agent.socket, check-mk-agent-async.service, cmk-agent-ctl-daemon.service, check-mk-agent@.service
Deactivating systemd unit 'check-mk-agent.socket'...
Deactivating systemd unit 'check-mk-agent-async.service'...
Deactivating systemd unit 'cmk-agent-ctl-daemon.service'...
Reloading xinetd
Purging configuration files for check-mk-agent (2.4.0p25-1) ...
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Comment savoir quel paquet RPM est installé :

root@linux# rpm -qa | grep check-mk
Copier la ou les commandes dans le presse-papiers
Commande(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

La désinstallation du paquet RPM s'effectue en tant qu'root, à l'aide de la commande rpm -e.

11.1. Réactivation du mode pull hérité

Lorsque l'agent est désinstallé, l'utilisateur cmk-agent créé par le script d'installation est conservé. Cela sert d'indicateur au script post-installation pour lui signaler que l'agent était déjà installé sur ce système. Si tel est le cas, le mode pull hérité ne sera pas activé lors d'une réinstallation ultérieure. Par conséquent, après avoir exécuté cmk-agent-ctl delete-all puis réinstallé l'agent, aucune connexion ne sera possible sur le port 6556.

Si vous souhaitez réactiver le mode pull hérité non chiffré, vous devrez activer explicitement ce mode.

12. Fichiers et répertoires

12.1. Chemins d'accès sur l'hôte surveillé

Chemin Description

/usr/bin/

Répertoire d'installation du script de l'agent check_mk_agent et du contrôleur d'agent cmk-agent-ctl sur le système cible.

/usr/lib/check_mk_agent

Répertoire de base pour les extensions de l'agent.

/usr/lib/check_mk_agent/plugins

Répertoire contenant les plug-ins qui doivent être exécutés automatiquement par l’agent et enrichir ses résultats avec des données de surveillance supplémentaires. Les plug-ins peuvent être écrits dans n’importe quel langage de programmation disponible.

/usr/lib/check_mk_agent/local

Répertoire pour les vérifications locales personnalisées.

/var/lib/check_mk_agent

Répertoire de base pour les données de l'agent.

/var/lib/check_mk_agent/cache

C'est ici que sont stockées les données de cache des sections individuelles ; celles-ci sont rajoutées à l'agent à chaque exécution tant que les données de cache sont valides.

/var/lib/check_mk_agent/job

Répertoire pour les tâches surveillées. Celles-ci seront ajoutées à la sortie de l'agent à chaque exécution.

/var/lib/check_mk_agent/spool

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.

/var/lib/cmk-agent/registered_connections.json

Contient une liste des connexions enregistrées auprès du contrôleur d'agent.

/var/lib/cmk-agent/pre_configured_connections.json

Contient une connexion préconfigurée vers un site pour l'enregistrement automatique, intégrée au package de l'agent via Agent Bakery.

/etc/check_mk

Stockage des fichiers de configuration de l'agent.

/etc/check_mk/mrpe.cfg

Fichier de configuration pour MRPE — permettant d'exécuter des plug-ins de vérification compatibles avec l'ancienne version de Nagios.

/etc/check_mk/encryption.cfg

Configuration du chiffrement intégré des données de l'agent.

/etc/check_mk/exclude_sections.cfg

Fichier de configuration permettant de désactiver certaines sections de l’agent.

12.2. Chemins d'accès sur le serveur Checkmk

Chemin Description

~/local/share/check_mk/agents/custom

Répertoire de base pour les fichiers personnalisés à fournir avec un agent préconfiguré.

~/share/check_mk/agents/cfg_examples/exclude_sections.cfg

Exemple de fichier de configuration pour la désactivation de sections.

~/var/agent-receiver/received-outputs

Contient, pour chaque connexion, son UUID sous forme de lien symbolique pointant vers le dossier portant le nom de l'hôte. En mode push, ce dossier contient la sortie de l'agent.


Last modified: Wed, 18 Mar 2026 09:39:33 GMT via commit 402b490f8
Sur cette page