Checkmk
to checkmk.com

Important

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

1. Introduction

Si vous utilisez des systèmes d'exploitation de type Unix, vous connaissez probablement déjà ce que l'on appelle les « cron ». Cependant, cron est en réalité un daemon qui gère les processus récurrents en arrière-plan et veille à ce qu'ils soient exécutés à des intervalles prédéfinis. Bien sûr, cette tâche ne doit pas nécessairement être effectuée par le programme cron — il s'agit simplement de la méthode la plus courante pour automatiser de manière fiable les tâches récurrentes sous Linux, ainsi que sous AIX ou Solaris.

Certaines de ces tâches sont essentielles au bon fonctionnement du système ; elles doivent donc être incluses dans la supervision de l’ordinateur hôte. Dans Checkmk, vous pouvez y parvenir à l’aide du script mk-job. Ce petit script est placé en amont de la tâche proprement dite et exécute ensuite cette dernière. Ce faisant, mk-job enregistre diverses données de mesure et les transmet à Checkmk. Parmi les données de mesure les plus importantes figurent la date de la dernière exécution de la tâche et le fait qu’elle ait été exécutée avec succès ou non.

Le script mk-job est, comme c'est souvent le cas dans Checkmk, un simple script shell que vous pouvez checker à tout moment. Vous bénéficiez ainsi d'une transparence et d'un contrôle maximaux à tout moment, même pour les tâches importantes sur votre ordinateur hôte.

2. Configuration du plugin

2.1. Configuration du programme mk-job

Commencez par configurer le petit script sur l'ordinateur hôte surveillé afin de pouvoir l'utiliser. La manière la plus simple de procéder consiste à récupérer le programme directement depuis votre serveur Checkmk à l'aide de la commande wget et à le rendre exécutable — dans l'exemple suivant pour un serveur Linux :

root@linux# wget -O /usr/local/bin/mk-job https://myserver/mysite/check_mk/agents/mk-job
root@linux# chmod +x /usr/local/bin/mk-job
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Si vous souhaitez installer le script sous AIX ou Solaris, chargez plutôt mk-job.aix ou mk-job.solaris. Si le programme wget n'est pas disponible, vous pouvez bien sûr télécharger le fichier d'une autre manière, par exemple en le copiant avec scp.

2.2. Supervision du premier travail

Pour la supervision de la première tâche, prenons à nouveau cron comme exemple courant. Supposons que vous ayez un cron comme celui-ci :

/etc/cron.d/sauvegarde
5 0 * * * root /usr/local/bin/backup >/dev/null

Cette tâche de sauvegarde est exécutée quotidiennement à 00 h 05 sous l'identifiant utilisateur root.

Pour effectuer la supervision de cette tâche, utilisez un éditeur de votre choix pour modifier la ligne en préfixant l’instruction /usr/local/bin/backup >/dev/null avec le nom du script mk-job ainsi qu’un nom pour le service (dans l’exemple, nightly-backup). Ce dernier nom sera utilisé ultérieurement comme nom du service dans Checkmk et doit donc être unique sur cet ordinateur hôte :

/etc/cron.d/sauvegarde
# Syntax:
# <minute> <hour> <day> <month> <day of week> <user> mk-job <service name> <command>
5 0 * * * root mk-job nightly-backup /usr/local/bin/backup >/dev/null

Lors de l'exécution du cron nouvellement défini, mk-job tentera de stocker les résultats de la mesure dans le répertoire /var/lib/check_mk_agent/job/root. Étant donné que le répertoire job appartient également à l'utilisateur root, mk-job n'aura aucun problème à créer le répertoire utilisateur root s'il n'existe pas encore.

À chaque appel, l'agent examinera les répertoires situés sous /var/lib/check_mk_agent/job/ et les ajoutera à la sortie.

Un tel résultat pourrait ressembler à ce qui suit, où, par souci de clarté, seule la partie pertinente de la sortie de l'agent est présentée ici :

<<<job>>>
==> nightly-backup <==
start_time 1613509201
exit_code 0
real_time 2:06.03
user_time 0.62
system_time 0.58
reads 200040
writes 35536
max_res_kbytes 28340
avg_mem_kbytes 0
invol_context_switches 1624
vol_context_switches 2086

3. Ajouter le service dans Checkmk

Dans Checkmk, vous trouverez automatiquement le service une fois que la tâche a été exécutée et que les résultats ont été enregistrés en conséquence. Comme d'habitude, rendez-vous donc dans la section de reconnaissance du service et activez le service :

discover mkjob

D'une part, vous trouverez tous les points de mesure indiqués ci-dessus sous forme de métriques et dans des visualisations de séries chronologiques prédéfinies. D'autre part, vous trouverez également les points de mesure dans le résumé et dans les détails du service :

service mkjob

4. Supervision des tâches des utilisateurs non privilégiés

Si vous souhaitez également effectuer la supervision des tâches d'utilisateurs autres que root, dans le répertoire job /var/lib/check_mk_agent/job/, créez d'abord un répertoire utilisateur et attribuez les droits à l'utilisateur approprié — dans l'exemple d'instruction suivante, à l'utilisateur myuser :

root@linux# cd /var/lib/check_mk_agent/job/ && mkdir myuser && chown myuser:myuser myuser
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

C'est ce qui permet en premier lieu à mk-job de stocker les résultats dans ce répertoire pour le compte de l'utilisateur.

5. Options de diagnostic

Si la configuration ne fonctionne pas, plusieurs options s’offrent à vous pour identifier le ou les problèmes. En principe, commencez toujours par le point de départ de la chaîne et checkez d’abord si vous avez correctement intégré le script « mk-job », comme décrit dans les premières étapes.

Les sources d'erreur possibles sont les suivantes :

  • mk-job cron ne parvient pas à le trouver car il est stocké dans un chemin d'accès non reconnu par cron. Dans ce cas, indiquez le chemin d'accès complet à mk-job.

  • Le nom du service contient des espaces et n'a pas été placé entre guillemets (").

  • La tâche est exécutée par un utilisateur qui ne dispose pas encore de son propre répertoire pour stocker les résultats.

Si les résultats de mesure ont été enregistrés et sauvegardés correctement, vérifiez sur le serveur Checkmk si les résultats sont également transmis correctement par l'agent.

Vous pouvez afficher la sortie de l'agent à l'aide de l'instruction suivante et la transmettre à l'instruction « less » :

OMD[mysite]:~$ cmk -d myhost | less
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

En général, la section pertinente « <<job>> » se trouve tout en bas de la sortie.

Sinon, vous pouvez ouvrir la liste des services de l'ordinateur hôte dans la supervision, naviguer vers le service « Check_MK » et sa colonne « Icons ». Vous pouvez y sélectionner l'entrée de menu « Download agent output » pour récupérer un fichier texte contenant la sortie complète de l'agent.

Si les résultats ne sont pas visibles ici, cela peut être dû au fait que l'agent ne dispose pas des autorisations nécessaires pour lire les fichiers correspondants. Cela peut se produire, par exemple, si vous n'appelez pas l'agent avec l'utilisateur « root », mais les résultats ne peuvent pas être lus par d'autres utilisateurs :

root@linux# ls -l /var/lib/check_mk_agent/job/myUser/
total 5
-rw-rw---- 1 myUser   myUser   186 Jul 21 11:58  nightly-backup
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Dans ce cas, ajoutez une autorisation permettant à tous les utilisateurs de lire les résultats :

root@linux# chmod 664 /var/lib/check_mk_agent/job/myUser/nightly-backup
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Ou bien créez un groupe et attribuez ce groupe à tous les fichiers de travail. Avec l'instruction suivante, vous modifiez uniquement l'autorisation du groupe. Le propriétaire n'est pas modifié car il reste inchangé si rien n'est saisi avant les deux points :

root@linux# chown :myJobGroup /var/lib/check_mk_agent/job/myUser/nightly-backup
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Assurez-vous d'avoir préalablement créé le groupe et d'y avoir ajouté l'utilisateur avec lequel l'agent est appelé.

6. Fichiers et répertoires

Chemin d'accès Signification

/usr/local/bin/

Le script mk-job doit être placé dans ce répertoire afin de pouvoir être facilement appelé.

/var/lib/check_mk_agent/job/

Répertoire habituel dans lequel les résultats sont stockés, triés par utilisateur. Veuillez noter que le chemin d'accès sous AIX est différent : /tmp/check_mk/job/.


Last modified: Wed, 10 Dec 2025 17:07:33 GMT via commit 740c270c7
Sur cette page