{{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/