NRPE (Nagios Remote PluginExecutor) est un agent de supervision qui permet de récupérer les informations à distance. Son principe de fonctionnement est simple : il suffit d’installer le serveur NRPE sur la machine distante et de l’interroger à partir du serveur Nagios.

Ce tutoriel est la suite de celui sur l’installation et la configuration de Nagios, il explique comment installer et configurer NRPE 2.13 et a été réalisé sous Debian 7.11.0. Si vous utilisez une distribution (ou version) différente il pourrait y avoir quelques divergences de paramétrage.

Toutes les manipulations à venir seront à effectuer en tant que super-utilisateur de la machine.


Installation & configuration de NRPE

Installer le plugin NRPE

Pour effectuer des requêtes NRPE, le serveur (ou plutôt client) Nagios aura besoin du plugin NRPE.

Exécutez la commande suivante :

apt-get install nagios-nrpe-plugin

Installer le serveur NRPE

Le serveur NRPE doit être installé sur chaque hôte supervisés par le serveur Nagios via NRPE.

Exécutez la commande suivante :

apt-get install nagios-nrpe-server

Configurer le serveur NRPE

Les manipulations à venir seront à appliquer sur chaque hôte possédant un serveur NRPE.

Autoriser l’accès au serveur NRPE

Pour que le serveur Nagios puisse récupérer des informations au sujet de son hôte, il faut lui donner l’accès au serveur NRPE dans le fichier /etc/nagios/nrpe.cfg.

Éditez le fichier nrpe.cfg :

nano /etc/nagios/nrpe.cfg

Repérez la ligne suivante :

allowed_hosts=127.0.0.1

Remplacez la valeur 127.0.0.1 par l’adresse IP du serveur Nagios ;

Enregistrez les modifications ;

Autoriser les requêtes NRPE

Par défaut, tout le trafic passe sur la machine, aucune requête n’est bloquée mais, si vous avez configuré les pares-feu de votre serveur pour qu’ils interdisent tout trafic entrant non autorisé, il vous faudra créer une nouvelle règle à l’aide du logiciel iptables (installé par défaut). Cette règle devra autoriser le trafic entrant sur le port 5666 (celui utilisé par NRPE).

Exécutez la commande suivante :

iptables -A INPUT -p tcp --dport 5666 -j ACCEPT

Cette commande permet d’ajouter (-A) la règle indiquant que le trafic en entrée (INPUT), utilisant le protocole TCP (-p tcp), sur le port 5666 (–dport 5666) est autorisé (-j ACCEPT)

Automatiser le démarrage de NRPE

Le serveur NRPE (le service nagios-nrpe-server) ne démarrage automatiquement au démarrage de la machine. Nous allons donc automatiser (facultatif) son lancement au démarrage de la machine à l’aide de la commande update-rc.d (permet d’activer, ou désactiver un service à exécuter au démarrage)

Automatisez le lancement du service nagios-nrpe-server  :

update-rc.d nagios-nrpe-server defaults

Redémarrez le service nagios-nrpe-server :

service nagios-nrpe-server restart

Vous pouvez tester le fonctionnement de NRPE depuis le serveur Nagios, à l’aide de la commande suivante :

/usr/lib/nagios/plugins/check_nrpe -H IPServeurNRPE

La commande devrait vous retourner la version du serveur NRPE :

NRPE v2.13

Fonctionnement de NRPE

Côté serveur NRPE

Pendant l’installation du serveur NRPE, les plugins de Nagios ont également été installés et son stockés dans le répertoire /usr/lib/nagios/plugins/. Leurs fichiers de configuration sont quant à eux stockées dans le dossier /etc/nagios-plugins/config/.

Sur le serveur NRPE, nous allons définir des commandes dans le fichier /etc/nagios/nrpe.cfg. Ces commandes utiliseront les plugins de Nagios et elle seront exécutées à distance par le serveur (ou plutôt client) Nagios, qui récupérera le résultat.

Si vous consultez le fichier nrpe.cfg, vous remarquerez que 5 commandes sont déjà définit par défaut (vers la fin du fichier) :

# The following examples use hardcoded command arguments...

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

Vous retrouverez les descriptions des plugins utilisés (et bien d’autres) dans le dossier /etc/nagios-plugins/config/ (en cherchant un peu bien sûr) ou bien en consultant ce site. À chaque greffon (plugin) que vous souhaiterez utiliser à distance, vous devrez créer une commande.

Exemple

Nous allons créer une commande utilisant le plugin check_disk, pour surveiller l’espace disque disponible dans le dossier /home/.

Éditez le fichier nrpe.cfg :

nano /etc/nagios/nrpe.cfg

Ajoutez la ligne suivante (à la fin de fichier de préférence) :

command[check_home]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /home

Ici, le statue du service que nous allons créer plus tard sera en WARNING (-w), s’il reste moins de 20% (20) d’espace disque disponible et le statue sera CRITICAL (-c) s’il reste moins de 10% (10) d’espace libre.

Enregistrez les modifications ;

Redémarrez le service nagios-nrpe-server (à faire à chaque ajout/suppression/modification de commande) :

service nagios-nrpe-server restart

Si vous souhaitez tester le fonctionnement de la commande, exécutez le plugins check_nrpe depuis le serveur Nagios, de la manière suivante :

/usr/lib/nagios/plugins/check_nrpe -H IPServeurNRPE -c check_home

Vous devriez obtenir un résultat ressemble à ceci :

DISK OK - free space: / 5997 MB (82% inode=89%);| /=1295MB;7663;7673;0;7683

Côté serveur Nagios

A l’installation du plugin NRPE, un fichier de configuration du plugin NRPE a été créé. Il s’agit du fichier /etc/nagios-plugins/config/check_nrpe.cfg :

# this command runs a program $ARG1$ with arguments $ARG2$
define command {
        command_name    check_nrpe
        command_line    /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}

# this command runs a program $ARG1$ with no arguments
define command {
        command_name    check_nrpe_1arg
        command_line    /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Ce fichier contient 2 définitions. Celle qui nous intéresse est la seconde, check_nrpe_1arg. C’est grâce a cette commande que seront exécutées  à distance les commandes définit dans le fichier /etc/nagios/nrpe.cfg.

Exemple

Supposons que nous voulons créer un service pour l’hôte (sur lequel est installé le serveur NRPE). Ce service doit utiliser le plugins check_nrpe pour exécuter à distance la commande check_home que nous avons créé sur l’hôte précédemment.

La syntaxe du service sera donc la suivante :

define service{
        use generic-service ; Name of service template to use
        host_name NomHôte
        service_description HOME
        check_command check_nrpe_1arg!check_home
}

On remarquera le la variable check_command contient le plugin check_nrpe_1arg suivie de l’argument check_home qui le nom de la commande à exécuter à distance.


Ce tutoriel est terminé. Vous pouvez continuer la supervision en supervisant un hôte Windows via NSCP ou encore des actifs via SNMP.

Si vous avez des problèmes, où que vous trouvez que certains points sont mal expliqués (ou faux), n’hésitez pas à m’avertir.