{{tag>nagios nrpe plugins}}
====== Nagios: Supervision via NRPE ======
===== Terminologie =====
**NRPE** signifie **N**agios **R**emote **P**lugin **E**xecutor, il fonctionne via un programme agent avec lequel le core Nagios peut communiquer pour exécuter des tests sur les hôtes distants.
==== Agent ====
* L'agent NRPE est installé sur l’hôte distant que l'on souhaite superviser par défaut il écoute sur le port **TCP 5666** ;
* L'agent NRPE est en attente des requêtes émises par le core Nagios de supervision ;
* Lorsqu'il reçoit une requête, l'agent l’interprète et exécute le bon plugin présent localement. Il retourne le résultat au superviseur Nagios.
==== Nagios ====
* Le core Nagios envoie les requêtes à l'agent NRPE.
* Le plugin intitulé check_nrpe est le programme en charge de l'émission des requêtes.
==== Plugins ====
* Un plugin est un exécutable (script ou binaire) effectuant un test.
* L'espace libre d'une partition, la charge processeur ou les utilisateurs authentifiés sont des exemples de ressources que l'on peut tester via un plugin.
* Les plugins sont localisés/installés directement sur l’hôte distant à superviser.
===== Installation =====
Coté serveur de supervision, on peut installer NRPE via le gestionnaire de paquets:
apt-get install nagios-nrpe-plugin
Coté hôte à superviser, on installe les plugins Nagios et l'agent NRPE via le gestionnaire de paquets:
apt-get install monitoring-plugins-basic nagios-nrpe-server
# vérifier l'état du service après l'installation
systemctl status nagios-nrpe-server.service
Éditer le fichier de configuration /etc/nagios/nrpe_local.cfg
# Interface d'écoute de l'agent
server_address=192.168.0.10
# IP autorisées à contacter l'agent
allowed_hosts=192.168.1.33
# Création d'une commande de test pour la partition racine
command[check_root_fs]=/usr/lib/nagios/plugins/check_disk -u GB -w 10% -c 3% -p /
Le fichier contient une section **COMMAND DEFINITIONS** qui déclare les commandes disponibles pour les superviseurs distants.
systemctl restart nagios-nrpe-server.service
==== Pare-feu ====
Si l'hote à superviser a le pare-feu UFW actif, créer une règle autorisant le traffic entrant pour l'agent NRPE:
ufw --dry-run allow in on ethX proto tcp from ip-superviseur to ip-agent port 5666 comment 'Supervision Nagios NRPE'
===== Tester la communication =====
==== Vérifier l'état de l'agent ====
Vérifier que l'agent NRPE s’exécute normalement:
systemctl status nagios-nrpe-server.service
Pour consulter les logs:
journalctl --unit nagios-nrpe-server.service
L'agent NRPE écoute par défaut sur le port TCP 5666
==== Exécution manuelle d'un test =====
Depuis le serveur de supervision:
su - nagios
cd /usr/lib/nagios/plugins/
./check_nrpe -H ipAgentNRPE
./check_nrpe -H ipAgentNRPE -c check_root_fs
===== Configuration des services à superviser ======
Sur le serveur de supervision, définir la commande check_nrpe via le fichier de configuration /usr/local/nagios/etc/objects/commands.cfg
##Commande check_nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
La commande pourra être utilisée pour tester différents services. Créer par exemple le test d
===== Troubleshooting =====
L'agent NRPE est bien démarré sur le client à superviser mais la vérification du service retourne des messages du type:
CHECK_NRPE STATE CRITICAL: Socket timeout after 10 seconds.
Nagios ne reçoit aucune réponse de l'agent alors que celui-ci est démarré. Vérifier si présence d'ufw ou les règles iptables. Sur le poste à superviser, si ufw est actif, consulter les logs:
journalctl --since today | grep "UFW BLOCK"
Voir section pour inclure une autorisation.
===== Références =====
* https://support.nagios.com/kb/article/nrpe-agent-and-plugin-explained-612.html
* https://denisrosenkranz.com/tuto-nagios-superviser-un-hote-linux-avec-nrpe/