Nagios ne sait que superviser les ressources publiques d'une machine notamment les ports ouverts . NRPE permet de surveiller les ressources locales d'une machine comme par
exemple la charge CPU, la place utilisée d'un disque...
Ce billet est directement inspiré de la documentation anglaise officielle qui se trouve sur le site Nagios : PDF NRPE
Il est possible d'utilser la commande check_by_ssh, qui présente l'avantage de ne rien demander comme installation sur le poste distant. Toutefois cette commande est plus gourmande en temps CPU et me donnera l'occasion d'écrire un billet futur.
Il faut installer NRPE sur chaque machine à superviser. Le serveur Nagios via la commande nrpe_check va lancer le démon NRPE sur la machine supervisée et renvoyer les informations au serveur Nagios.
Le schéma ci-dessous montre le principe de NRPE

La commande check_nrpe lance le dénom NRPE sur la machine distante via xinetd, ce principe permet de ne faire tourner le démon NRPE qu'au moment de la collecte.
Dans l'exemple présenté ici le serveur Nagios aura pour IP 192.168.1.100 et la machine à superviser 192.168.1.101. Il est supossé que le serveur Nagios est correctement installé. Sinon vous voir le billet suivant :
Installation de NRPE sur la machine à superviser
Bien qu'il existe dans chaque distribution des packages prèts à l'emploi, je vais utiliser les codes sources afin d'avoir une version la plus à jour. Il est necessaire de disposer des outils de compilation, sur Debian utiliser la commande suivante :
aptitude install build-essential
Télécharger les archives suivantes :
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
Le premier téléchargement concerne les plugins Nagios et le second le démon NRPE. Les archives sont les dernières mise à jour lors de la rédaction du billet.
Décompresser et compiler les plugins Nagios
tar -xvzf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure
make
make install
On retrouve ici le classique triptyque de compilation. l'ensemble des binaires est installé sous /usr/local/nagios. le plus simple est de créer un user nagios sur la machine et de le nommé comme propriétaire de ce répertoire.
adduser nagios
chown -R nagios:nagios /usr/local/nagios
Installer ensuite xinetd
aptitude install xinetd
Pou installer le démon NRPE il faut au préalable installer les librairies SSL
aptitude install libssl-dev
Décompresser l'archive téléchargée précédement, compiler et installer
tar -xvzf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
Editer le fichier /etc/xinetd.d/nrpe et sur la ligne only_from rajouter l'adresse IP du serveur Nagios. le fichier doit ressembler à ceci :
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.1.100
}
Ajouter la ligne suivante à /etc/services
nrpe 5666/tcp # NRPE
Relancer xinetd
/etc/init.d/xinetd restart
Tester le fonctionnement correct avec la commande netstat
netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN
Tester ensuite que le démon NRPE répond correctement
/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.13
La configuration des commandes se fait dans le fichier /usr/local/nagios/etc/nrpe.cfg. Il existe déjà des commandes prédéfinies, la synaxe est très simple. par exemple nous allons demander ldes information sur la partition /var de la maichine qui est montée sur /dev/sda7. Dans le fichier /usr/local/nagios/etc/nrpe.cf rajouter la ligne suivante :
command[check_var]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda7
Configurer NRPE surle serveur Nagios
Il suffit de télécharger l'archive du démaon NRPE, de la compiler et d'installer le plugin.
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tar -xvzf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all
make install-plugin
Tester ensuite le fonctionnement distant
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.101
NRPE v2.13
Tester par exemple la charge globale de la machine supervisée
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.101 -c check_load
OK - Charge moyenne: 0.00, 0.01, 0.05|load1=0.000;15.000;30.000;0; load5=0.010;10.000;25.000;0; load15=0.050;5.000;20.000;0;
Tester la commande check_var créée précédement
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.101 -c check_var
DISK OK - free space: /var 1733 MB (92% inode=98%);| /var=149MB;1586;1784;0;1983
Il suffit de rajouter au fichier /usr/local/nagios/etc/commands.cfg la commande de check_nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
La commande check_nrpe s'utilise alors comme tout autre dans le fichier de configuration de la machine sur le serveur Nagios. Exemple d'incorporation de la commande check_var
define service{
use local-service
host_name adi101 -> Il s'agit de la machine supervisée IP 192.168.1.101
service_description Partition var
check_command check_nrpe!check_var
}