Monitorer les hôtes Linux (Debian) distant avec le serveur NRPE de Nagios
Des plus grosses installations aux plus petites, le monitoring du réseau reste un problème bien présent pour pouvoir garder un oeil permanent sur les installations et pouvoir réagir au plus vite en cas de problème. La solution la plus souvent utilisée n'est plus à présenter. Tout le monde connait aujourd'hui le moteur de monitoring réseau open-source mieux connu sous le nom de Nagios.
Mais comme ça marche? Pour ce qui est de l'installation et de la configuration d'un serveur Nagios, je vous renvoie vers d'autres très bon tutoriels détaillés comme ceux de Nicolargo. Mais une fois le serveur installé, on veux pouvoir monitorer tous les ordinateurs d'un même réseau. Voici un petit tutorial pour vous expliquer comment configurer un ordinateur de votre réseau pour qu'il puisse être monitoré par votre serveur Nagios. (Ce tutoriel vaut pour les Linux Debian-like, pour les autres distributions, ça sera similaire, mais surement pas identique).
Dans cet exemple j'utilise une Ubuntu 8.10, donc je pars des dépots Ubuntu.
D'abord on va avoir besoin d'installer nagios-nrpe-server et nagios-plugins :
apt-get install nagios-nrpe-server nagios-plugins
Une fois les paquets installés, vous allez avoir besoin d'éditer les deux fichiers de configuration de nagios NRPE :
Pour le fichier /etc/nagios/nrpe_local.cfg, ajoutez la ligne suivante :
allowed_hosts=adresse.ip.du.serveur.nagios
Pour le fichier /etc/nagios/nrpe.cfg, cherchez la ligne suivante :
allowed_hosts=127.0.0.1
Et modifiez la ainsi :
allowed_hosts=adresse.ip.du.serveur.nagios
Ensuite, dans le même fichier /etc/nagios/nrpe.cfg you devrez modifier les définitions de commandes de votre système. Voici une copie de mes commandes :
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10 command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20 command[check_md0]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/md0 command[check_md1]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/md1 command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200 command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 20 -c 10
Nottez bien que les noms (check_users, check_md0, ...) qui sont ici seront utilisés du coté du serveur, donc veillez à les noter !
Il ne reste plus qu'à redémarrer le serveur NRPE que vous venez de configurer et les changements seront pris en compte :
/etc/init.d/nagios-nrpe-server restart
Ca y'est, l'hôte est configuré et est maintenant prêt à renvoyer au serveur les informations qu'il veut. Passons maintenant à la configuration du serveur Nagios en tant que tel. Allez donc sur le serveur (en ssh par exemple).
Vous allez devoir modifier les fichiers contenant les configuration des hôtes monitorés par Nagios. Chez moi c'est le fichier /etc/nagios3/generic-host_nagios2.cfg mais ça peut différer d'une installation à l'autre.
Assurez vous que l'hôte linux est définit comme ci-dessous et remplacer les champs en fonction de votre configuration :
define host{ use generic-host host_name myhost alias My personnal computer address 192.168.0.1 hostgroups xyzhosts }
Ensuite adaptez vos définitions de groupe :
define hostgroup{ hostgroup_name xyzhosts alias XYZ Hosts }
Et enfin ajoutez les définitions des services (attention à bien configurer les même commandes que celles définies sur le hôte distant)
define service { use generic-service host_name myhost service_description Current Users check_command check_nrpe!check_users } define service { use generic-service host_name myhost service_description Current Load check_command check_nrpe!check_load } define service { use generic-service host_name myhost service_description Boot Partition check_command check_nrpe!check_md0 } define service { use generic-service host_name myhost service_description Root Partition check_command check_nrpe!check_md1 } define service { use generic-service host_name myhost service_description Zombie Processes check_command check_nrpe!check_zombie_procs } define service { use generic-service host_name myhost service_description Total Processes check_command check_nrpe!check_total_procs } define service { use generic-service host_name myhost service_description Swap Usage check_command check_nrpe!check_swap }
Enregistrez vos modifications et redémarrez le serveur Nagios pour qu'elles soient prises en compte :
/etc/init.d/nagios restart
Si vous avez une erreur au redémarrage du serveur Nagios, revérifiez votre configuration et réessayez.
Comment faire la même chose avec un hôte sous windows?
Voici un tutoriel (en anglais) expliquant la même manoeuvre sur un ordinateur windows :
Références
Cet article est inspiré de l'article original en anglais :