Table des matières

, ,

Nagios: Supervision via NRPE

Terminologie

NRPE signifie Nagios Remote Plugin Executor, il fonctionne via un programme agent avec lequel le core Nagios peut communiquer pour exécuter des tests sur les hôtes distants.

Agent

Nagios

Plugins

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