Nagios Core 4.x
Outil libre de supervision d'infrastructure, Nagios est sur le marché depuis 1996 ?... (alors appelé NetSaint ?). Il permet d'effectuer plusieurs type de supervision sur les serveurs ou équipements réseau distants, et les checks basiques peuvent être effectués dès que le serveur installé. Il est ensuite possible d'utiliser des addons pour superviser des équipements spécifiques, des middlwares ou autres.
Serveur Nagios Core 4.x
Installation
La version 4 de Nagios n'est pas actuellement dispo par APT, et l'installation du serveur (qui comprend le service et l'interface web de Nagios) passe donc par une phase de compilation puis d'installation depuis les sources ?. Mais pas d'inquiétude tout a déjà été scripté pour nous ?. Il suffit de suivre le guide officiel qui nous guide pas à pas en donnant la séquence de commandes à taper pour installer Nagios4. L'install sur nos distributions favorites Debian, Raspbian, Ubuntu est documenté (Attention à bien respecter les commandes pour votre version d'OS !)
Vérifier l'installation de Nagios 4 coté serveur avec un sudo service nagios status
et vous pouvez désormais accéder à l'interface web de Nagios visible sur http://ip_de_votre_serveur_nagios/nagios
Configuration
Une fois le serveur installé, il nous faut ajouter des objets à superviser, et Nagios distingue les Services et les Hôtes tout deux regroupable.
Les fichier de configurations sur ma distribution Ubuntu sont:
/usr/local/nagios/etc/nagios.cgf # fichier de configuration principal de Nagios (qui référence les autres fichiers de conf)
/usr/local/nagios/etc/objects/*.cfg # templates de fichiers de conf
j'ai décidé de dupliquer le fichier /usr/local/nagios/etc/objects/localhost.cfg en maconf.cfg j'ai remplacé la ligne contenant localhost.cfg par la suivante dans nagios.cgf :
cfg_file=/usr/local/nagios/etc/objects/maconf.cfg
un petit test de la conf sudo service nagios reload -t et si tout va bien on reload le service (sans le -t).
NRPE
coté sur Raspberry Pi
Pour pouvoir effectuer des contrôles plus poussés (CPU, mémoire etc) ou même custom, il est utile de passer par un addon Nagios nommé NRPE ? qui sera a installer coté machine a surveiller (client):
sudo apt install nagios-nrpe-server
Il faudra ensuite ouvrir le port 5666 coté client, port utilisé par nrpe serveur (oui oui c'est le serveur qui doit être installé sur la machine a surveiller) si nécessaire.
Editer le fichier de conf /etc/nagios/nrpe.cfg en modifiant la ligne allowed_hosts=adresse_ip_serveur_nagios puis redémarrer le service:
sudo service nagios-nrpe-server restart
le fichier de config nrpe.cfg nous fourni déjà plusieurs checks et aussi quelques autres que l'on peut décommenter :
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_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1 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
coté serveur
Il faut installer le plugin nagios-nrpe-plugin c'est l'outil qui va permettre à Nagios serveur d'interroger les clients:
sudo apt install nagios-nrpe-plugin
Une fois le binaire installé /usr/local/nagios/libexec/check_nrpe , il possible d'effectuer un test en live:
check_nrpe -H adresse_ip_machine_a_surveiller -c check_load
Pour finir, définir la commande check_nrpe dans /usr/local/nagios/etc/objects/commands.cfg:
define command { command_name check_nrpe command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
pour la rendre disponible dans les fichiers de config /usr/local/nagios/etc/objects/maconf.cfg:
define service { use generic-service host_name ip_de_lobjet_reseau_a_surveiller service_description CPU Load check_command check_nrpe!check_load notifications_enabled 0 }
Troubleshooting et test de communication client/serveur
- vérifier si le port 5666 est bien ouvert coté client avec un bon vieux netcat par exemple: netcat -z -v -n 192.168.1.32 5666
- vérifier que le service tourne bien coté client: sudo service nagios-nrpe-server status
- fichiers de log coté serveur: tail /usr/local/nagios/var/nagios.log
- vous trouverez la doc officiel de Nagios Core 4.x et du plugin NRPE en pdf