[Debian 9] Découverte et utilisation de Checkmk avec Shinken pour Windows

check_mk janv. 30, 2018

La supervision permet à l’administrateur système de pouvoir être informer et visualiser aisément les problèmes techniques sur son réseau. Pour l’aider à accomplir cette tâche Check_MK vient nous épauler.

[box type= »note » align= » » class= » » width= » »]INFORMATION IMPORTANTE ! L’article n’est pas totalement à jour pour une Debian 9, notamment pour superviser un Windows. Vous aurez ici une ébauche d’installation et un exemple d’utilisation qu’il faudra très certainement adapter selon vos besoins. L’article sera re-factorisé…[/box]

Shinken (& Nagios) jouissent d’une pléthore de plugins disponibles pour faciliter cette supervision. Ainsi, des fonctionnalités avancées peuvent être ajoutées, d’autres modifiées de façon exponentielle, ou encore quelques unes qui automatisent toute (ou presque) la supervision. Grâce à « Check_MK« , votre serveur de supervision verra sa productivité augmenter de manière importante !

[divider style= »solid » top= »10″ bottom= »10″]

Brève présentation

« Check_MK » est un plugin qui facilitera la vie de TOUS les administrateurs systèmes & réseaux.
En effet, ce dernier se charge seul de collecter les informations relatives aux hôtes sur le réseau. Cette collecte est possible par l’installation d’un plugin sur les clients (check-mk-agent), et d’un paquet sur le serveur (check-mk-server) pour superviser le parc.
Ainsi, il est alors possible d’obtenir des informations relatives au CPU, à la RAM, sur le(s) HDD, les partitions, la quantité de Swap utilisée, le nombre de processus actifs et bien plus encore suivant les matériels supervisés.

Ce plugin est à la base préconfiguré pour une installation sous Nagios3. Toutefois, il est possible de l’adapter pour Shinken et ainsi profiter de sa puissance.

Site web officiel : http://mathias-kettner.com/index.html

[divider style= »solid » top= »10″ bottom= »10″]

I. Installation sur le serveur Shinken

Dans cet article, l’installation se fait via le fichier .deb directement téléchargeable sur le site officiel de Check_MK.

Sur le serveur, il faut installer au préalable « xinetd » – Check MK utilise ce serveur web pour corréler les informations des hôtes supervisés. Il est aussi utilisé pour effectuer les connexions & transmissions entre le serveur de supervision & l’envoi / réception des données clients.

sudo apt-get install xinetd time curl dialog dnsutils fping graphbiz libapache2-mod-fcgid libdbi-dev

Lorsque « xinetd » est installé, c’est le moment de télécharger Check_MK « serveur ».
Attention, avec les nouvelles éditions, il existe plusieurs versions – Il faut prendre la « RAW » qui correspond à votre distribution (dans mon cas, une Debian 9.3 64 bits). Tous les téléchargements sont à cette adresse.

Une fois le téléchargement effectué, il faut lancer le décompactage et l’installation de Check_MK – Attention, cela peut prendre du temps en fonction de la puissance de votre serveur – :

sudo dpkg -i check-mk-raw-1.4.0p24_0.stretch_amd64.deb

II. Modification du fichier de configuration « check-mk-server » pour le serveur xinetd.

Quelques modifications sont nécessaires pour le bon fonctionnement du paquet.
Vous devez entrer dans le fichier « check_mk » situé dans le serveur « xinetd » ; des variables doivent être modifiées pour que Checkmk puisse communiquer & être utilisable avec Shinken.

vim /etc/xinetd.d/check_mk
  • Modification de l’utilisateur : changer « root » en« shinken »

Note :
Pour éviter les tentatives de piratage et les problèmes de droits, l’utilisateur qui a les droits pour utiliser Checkmk est le même que Shinken. Dans notre exemple, l’utilisateur en question est « shinken ».

Vous pouvez modifier cet utilisateur, mais il faudra répercuter ce changement partout (fichiers de configuration de Shinken, Checkmk et les autres plugins si besoin est).

  • Changer un attribut en fin de fichier : « disable : yes » par « disable : no »

Explications :
Par défaut, l’agent de Checkmk est désactivé.
Il faut donc l’activer pour récupérer les données des clients monitorés et faire fonctionner le paquet.


III. Installation de l’agent « Check-mk » sur les clients du parc informatique

Pour les besoins de nos tests, les machines ont tous des IP fixes.

a) Installation sur le client LINUX (Debian / Ubuntu) à monitorer

Sur tous les clients Linux à monitorer, deux paquets doivent être installés pour permettre la collecte et l’envoi des données au serveur de supervision.

apt install xinetd check-mk-agent
  • On installe « xinetd » aussi sur le client pour permettre la communication & l’envoi de données avec le serveur de supervision. La configuration du serveur « xinetd » sera automatique.
  • « check-mk-agent » est autonome. Il ne nécessite aucune configuration préalable. Tout est gérer de façon transparente pour l’utilisateur et même pour le système.

b) Installation sur le client WINDOWS (XP Professionnel) à monitorer

La supervision d’un client Windows par Checkmk se passe par l’installation d’un service.
Checkmk fournit le logiciel exécutable pour installer et utiliser ce service de façon totalement transparente.

i. Installation du service (check_mk)

Depuis les récentes versions de Checkmk, il suffit de télécharger sur le site officiel le fichier exécutable pour Windows et le lancer, comme un programme à installer.

Lien de téléchargement : https://checkmk.com/download_version.php?&version=1.5.0p19&edition=cre

L’installation se fait de manière automatique : un service est alors créé et lancé automatiquement par défaut lors du démarrage de l’ordinateur.

ii. Utilisation

Tout comme pour Linux, il n’y a pas de configuration au préalable à faire.
Le seul critère important pour l’utilisation de Checkmk sur Windows réside dans le fait que le service doit être lancé par un compte « Administrateur » ; les comptes « invité » ou « limités » (c’est à dire sans droits d’administration) de Windows ne pourront pas lancer le service et donc, le PC ne pourra pas être monitoré.

A partir de cette étape, vous avez donc un client Linux & un client Windows XP Pro’ de prêt à être monitorés.


IV. Liste des hosts à monitorer

Les hosts sont définis dans un fichier « /etc/check_mk/main.mk » qui sera lu par le « check-mk-server ». Il est possible d’y définir les hôtes par nom de machine, ou par IP.

On peut aussi y inclure les « parents » des hôtes, pour créer une hiérarchie et ainsi décomposer correctement le réseau.

a) Emplacements fichiers « Check_MK« 

  • Fichier comprenant la définition des hôtes :

/etc/check_mk/main.mk

  • Fichiers / scripts de check utilisés par check_mk :

/usr/share/check_mk/checks

Dans le fichier « main.mk« , vous devez entrer cette ligne ci-dessous pour que Checkmk puisse « voir » et communiquer avec les hôtes spécifiés.

all_hosts [ 'localhost', '192.168.1.1' , 'srv1' ]

V. Modification des droits d’utilisateur (pour Shinken)

Pour le bon fonctionnement du plugin sous Shinken, des modifications sur les droits et les propriétaires des dossiers sont obligatoires. Si ces changements ne sont pas effectués, le plugin principal (check-mk-server) ne pourra communiquer avec ses agents sur les hôtes, et par conséquent aucunes informations ne seront remontées.

chown -R shinken:shinken /etc/check_mk
chown -R shinken:shinken /usr/share/check_mk
chown -R shinken:shinken /var/lib/check_mk/
chown -R shinken:shinken /etc/nagios3/
chown shinken:shinken /usr/bin/check_mk
chown shinken:shinken /usr/bin/check_mk_agent
chmod +x /usr/bin/check_mk

Explications :

  • Les dossiers & fichiers utilisés par Checkmk sont maintenant attribués pour l’utilisateur et le groupe « Shinken » ;
  • Les 2 fichiers de script (« /usr/bin/check_mk » & « /usr/bin/check_mk_server« ) sont maintenant sous la propriété du serveur Shinken, donc l’utilisateur « shinken » ;
  • Le script « /usr/bin/check_mk » est rendu exécutable pour pouvoir lancer des tests sur le serveur d’une part, mais aussi sur les clients monitorés.

VI. Modification des fichiers de configuration de Checkmk

Checkmk est « à la base » préconfiguré pour être en adéquation avec Nagios. Étant donné que Shinken se fonde sur Nagios, il est donc possible d’adapter Checkmk pour Shinken.
Il faut cependant modifier les chemins et autres liens symboliques qui sont à la base fait pour une configuration avec Nagios.

  • Fichier « /usr/share/check_mk/modules/defaults »
nagios_config_file = '/usr/local/shinken/etc/nagios.cfg'
nagios_startscript = '/etc/init.d/shinken'
…
nagios_user = 'shinken'
www-group = www-data'
nagios_command_pipe_path = '/usr/local/shinken/var/rw/nagios.cmd'
  • Fichier « /usr/share/check_mk/modules/check_mk.py« 
nagios_config_file = '/usr/local/shinken/etc/nagios.cfg'
nagios_startscript = '/etc/init.d/shinken'
…
nagios_user = 'shinken'
www-group = 'shinken'
nagios_command_pipe_path = '/usr/local/shinken/var/rw/nagios.cmd'

VII. Création de la liste des processus à surveiller sur les hosts

Checkmk se crée une liste des tâches : « Quels services / processus devront être surveillés suivant le type d’hôte et le protocole utilisé ? »

check_mk -I localhost
check_mk -I 192.168.1.1

Si la connexion est effectuée sans problème, rien ne s’affichera dans le terminal : La commande sera exécutée, la connexion effectuée, et aucuns résultats affichés (ce qui est normal).
L’étape suivante permet d’avoir les résultats…


VIII. Récupération des résultats fournis par le « check-mk-agent » des hosts monitorés

Après avoir effectué les tests, il est tout de fois possible de voir les résultats de ces derniers en CLI.

check_mk -nvp localhost
check_mk -nvp 192.168.1.1

Exemple de résultat du plugin Checkmk

1. shinken@srv-debian:~$ check_mk -I 192.168.56.101
2. shinken@srv-debian:~$ check_mk -nvp 192.168.56.101
3. Check_mk version 1.1.12
4. CPU load OK - 15min Load 0.00 at 1 CPUs  (load1=0.01;5;10;0;load5=0.01;5;10;0; load15=0;5;10;0;)
5. CPU utilization OK - user: 8.3%, system: 4.9%, wait: 1.9%           (user=8.286;;;;system=4.867;;;; wait=1.941;;;;)
6. Disk IO SUMMARY       OK - 0.00B/sec read, 0.00B/sec write     (read=0;;;; write=0;;;;)
7. Kernel Context Switches OK - 0/s in last 1 secs     (ctxt=0;;;;)
8. Kernel Major Page Faults OK - 0/s in last 1 secs    (pgmajfault=0;;;;)
9. Kernel Process Creations OK - 0/s in last 1 secs    (processes=0;;;;)
10. Memory used          OK - 0.17 GB used (0.17 GB RAM + 0.00 GB SWAP, this is 17.8% of 0.98 GB RAM)(ramused=178MB;;;0;1003 swapused=0MB;;;0;465 memused=178MB;1504;2006;0;1469)
11. Mount options of /   OK - mount options are barrier=1,data=ordered,errors=remount-ro,relatime,rw ()
12. Number of threads    OK - 105 threads               (threads=105;2000;4000;0;)
13. TCP Connections      OK - ESTABLISHED: 23, TIME_WAIT: 2   (ESTABLISHED=23;;;;SYN_SENT=0;;;; SYN_RECV=0;;;; LAST_ACK=0;;;; CLOSE_WAIT=0;;;; TIME_WAIT=2;;;; CLOSED=0;;;; CLOSING=0;;;;FIN_WAIT1=0;;;; FIN_WAIT2=0;;;;)
14. Uptime               OK - up since Fri Jan 20 14:54:46 2012 (0d 00:04:38)     (uptime=278;;;;)
15. VBox Guest Additions UNKNOWN - Error running VBoxControl guestproperty enumerate ()
16. fs_/                 OK - 12.1% used (1.14 of 9.4 GB), (levels at 80.0/90.0%), trend: 0.00B / 24 hours(/=1162.2890625MB;7694;8655;0;9617.53125 growth=0;;;; trend=0;;;0;400.730469)
17. OK - Agent version 1.1.12, execution time 0.2 sec|execution_time=0.211

IX. Création du fichier de configuration de Checkmk pour Shinken

Checkmk a de nombreux avantages… En plus d’obtenir une multitude d’informations utiles pour la supervision, il est aussi possible de créer les fichiers de configuration nécessaires pour Nagios (et donc Shinken).
Par conséquent, nous évitons l’écriture de centaines voire de milliers de lignes à la main et les erreurs de frappe, de syntaxes et autres.
Shinken est capable de lire les fichiers de configuration principalement étudiés et conçus pour Nagios, ce qui est en notre faveur.

Les fichiers de configuration des hôtes supervisés par Checkmk se situent par défaut dans « /etc/nagios3/conf.d/check_mk/ ». (Il est toutefois possible de modifier ce chemin).

Pour créer ce fichier de configuration, il suffit d’exécuter la commande ci-dessous :

check_mk -U

Selon les hôtes paramétrés dans le serveur, la création peut prendre plus ou moins de temps ; En temps normal, il ne suffit qu’à peine une petite minute pour créer se fichier de configuration.


X. Intégration des fichiers créés par Checkmk dans Shinken

Shinken à l’avantage d’être capable de lire les fichiers de Nagios.
Toutefois, il faut effectuer une petite modification dans le fichier « nagios.cfg » (/usr/local/shinken/etc/nagios.cfg) pour lui inclure le chemin où se trouvent les fichiers créés par Checkmk.

cfg_dir = /etc/nagios3/conf.d/check_mk/

Il est préférable d’inclure tout le dossier pour la raison suivante : ce dossier contient non seulement la configuration des hôtes, mais aussi le « template » à utiliser (le modèle à utiliser).


XI. Rechargement de la configuration de Shinken

Une fois la création des fichiers faite, et l’incorporation dans Shinken, il ne reste plus qu’à redémarrer le service (« /etc/init.d/shinken-arbiter restart ») pour recharger la configuration de Shinken. Il est nécessaire d’effectuer le redémarrage de l’arbiter pour que la configuration de Shinken soit «relue» entièrement, et donc y inclure les tests et résultats fournis par Checkmk.

Vous avez maintenant une configuration fiable de Checkmk & ainsi, un serveur de supervision encore plus intelligent & autonome !

Julien

Passionné par l'informatique depuis tout petit, je transforme ma passion en expertise. Utilisateur au quotidien des systèmes Microsoft, les OS GNU/Linux sont toujours sous mon coude ! Hire me !