NAGIOS – Supervision à distance avec NRPE

Supervision avec NRPE

1. Principe de fonctionnement

NRPE est l’agent le plus utilisé pour superviser les serveurs Linux mais il peut être utilisé aussi avec les machines Windows. Son principe de fonctionnement ressemble beaucoup à Nagios. Il permet d’exécuter les plugins localement dans la machine distante et de renvoyer le résultat à Nagios.

Nagios fait appel à NRPE en utilisant le plugin check_nrpe pour lancer la commande et exécuter le plugin. À la fin de l’exécution de la commande, NRPE renvoie les informations à check_nrpe. Ces informations correspondent à un code de résultat (0= OK, 1=WARRING, 2=CRITICAL et 3=UNKNOWN) et d’autres informations utiles comme les données de performance.

La communication entre Nagios et le daemon NRPE se fait par le flux SSL et par défaut NRPE utilise le port TCP 5666 pour assurer cette communication.

L’intérêt d’utiliser NRPE par rapport à SSH est de minimiser l’utilisation des ressources sur l’hôte distante et sur le serveur Nagios. Par contre NRPE est moins sécurisé que SSH puisqu’il utilise un mécanisme d’authentification auprès de l’hôte basé sur l’adresse IP ou la plage d’adresses IP du demandeur. Le diagramme suivant résume ce principe de fonctionnement.

images/nrpe-1.PNG

2. Installation et configuration

a. Installation

Après avoir compris le principe de fonctionnement de NRPE, il est temps de passer à l’installation sur l’hôte. Nous allons exécuter cette installation dans une machine Linux Ubuntu et une machine Linux CentOS.

Comme Nagios, NRPE qui est développé et maintenu par l’équipe de Nagios, peut être installé avec deux méthodes :

  • La première méthode est d’installer NRPE en utilisant les gestionnaires de paquetages apt-get pour Ubuntu ou yum pour CentOS.

  • La deuxième consiste à télécharger et compiler le fichier source disponible sur le site web Nagios : https://www.nagios.org/downloads/nagios-core-addons/

Il est recommandé d’installer NRPE en utilisant le gestionnaire des paquets apt-get ou yum pour faciliter ensuite la configuration, l’exploitation et la mise à jour.

Dans une machine Linux Ubuntu, les paquets qui sont nécessaires pour installer NRPE s’appellent nagios-nrpe-server et nagios-nrpe-plugin. La commande pour les installer est la suivante :

apt-get install nagios-nrpe-server nagios-nrpe-plugin

Pour une machine Linux CentOS, les deux paquets s’appellent nagios-nrpe et nagios-plugins-nrpe et ils s’installent avec cette commande :

yum install nagios-nrpe nagios-plugins-nrpe

Nous allons maintenant employer la deuxième méthode pour l’installation qui utilise la compilation des sources.

Avant de commencer l’installation, il y a des prérequis à faire et des paquets à installer comme le compilateur GCC (GNU C Compiler).

Dans une machine Linux Ubuntu, ces prérequis peuvent être installés par cette commande :

apt-get install gcc make binutils cpp pkg-config libc6-dev libssl-dev openssl

Pour un système CentOS, la commande pour installer les prérequis est la suivante :

yum install ­-y mod_ssl openssl­-devel xinetd gcc make gcc 
glibc glibc­common gd gd­devel

Pour des raisons de sécurité, il faut créer un utilisateur et un groupe nagios pour lancer NRPE comme il est déjà fait lors de l’installation de Nagios dans le chapitre Installation et configuration.

groupadd        nagios 
useradd -r -g nagios nagios

L’étape suivante consiste à télécharger et décompresser le fichier source fourni par l’équipe de Nagios dans le répertoire tmp.

cd /tmp 
wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/
nrpe-2.15/ nrpe-2.15.tar.gz

Voilà nous avons maintenant les paquets prêts pour la compilation, l’étape suivante consiste à exécuter le script configure pour installer NRPE.

./configure ­­-with-­ssl=/usr/bin/openssl ­--­with-­ssl-­lib=/ 
usr/lib --enable-command-args

Suite à cette commande, un résumé de la configuration va s’afficher :

*** Configuration summary for nrpe 2.15 03-10-2008 ***: 
 General Options: 
 ------------------------- 
 NRPE port:            5666 
 NRPE user:            nagios 
 NRPE group:           nagios 
 Nagios user:          nagios 
 Nagios group:         nagios

La dernière étape de cette installation consiste à compiler et installer NRPE avec les deux commandes :

make 
make install

L’installation de NRPE ne suffit pas pour contrôler la machine. Il nous manque les plugins pour être exécutés par NRPE. Pour les installer, il suffit de lancer la commande suivante :

make install-plugin

Si le processus de compilation échoue, il est très probable que ce soit en raison des prérequis manquants. Dans ce cas, installez les packages mentionnés ci-dessus.

En supposant que l’installation par compilation réussit, la prochaine étape est de configurer NRPE pour communiquer avec le serveur Nagios.

b. Configuration de NRPE

Après avoir installé NRPE dans la machine distante, nous devons faire la configuration nécessaire et la mise en place du système NRPE afin qu’il accepte les requêtes à partir du serveur central où est installé Nagios.

Si vous avez fait l’installation par le gestionnaire de paquets apt ou yum selon la distribution utilisée, vous devez trouver le fichier de configuration nrpe.cfg sous le répertoire /etc/nagios.

Si votre installation est faite par compilation du fichier source, il faut créer le fichier de configuration nrpe.cfg dans le répertoire /usr/local/nagios/etc/ à partir de l’exemple fourni par le fichier source.

cd /tmp/nrpe-15 
cp sample-config/nrpe.cfg /usr/local/nagios/etc/

Le fichier principal de NRPE nrpe.cfg contient plusieurs paramètres, il est nécessaire de les comprendre pour bien configurer l’agent de supervision.

Voici la liste des paramètres qui peuvent être utilisés :

  • server_port : c’est le port TCP utilisé pour la communication entre Nagios et l’agent NRPE. Par défaut, sa valeur vaut 5666. Il faut s’assurer qu’il n’y a aucun firewall dans la machine distante ou dans le réseau qui bloque ce port.

  • server_address : dans le cas où la machine distante contient plus d’une seule interface réseau, vous pouvez choisir l’interface à travers une adresse IP où NRPE écoute les requêtes de Nagios. Si non spécifiée, le démon écoute sur toutes les interfaces disponibles.

  • allowed_hosts : généralement ce paramètre contient l’adresse IP du serveur Nagios. Comme nous avons parlé dans la première partie de ce chapitre que NRPE utilise un mécanisme de sécurité basé sur l’adressage IP pour accepter la requête de la part des serveurs. Le paramètre allowed_hosts peut contenir plusieurs adresses IP et aussi des plages sous réseaux.

  • dont_blame_nrpe : cette option détermine s’il est autorisé ou pas de passer des arguments dans la commande. Par défaut le passage des arguments est désactivé et le paramètre dont_blame_nrpe a comme valeur 0. Il faut changer cette valeur à 1 pour autoriser les arguments.

  • command_timeout : nous pouvons aussi spécifier pour combien de temps en secondes NRPE attendra le résultat d’une commande lancée avant qu’elle soit arrêtée. Si le temps d’exécution d’une commande dépasse la valeur attribuée pour que l’option connection_timeout NRPE termine le processus responsable sur la commande et renvoie un statut critique au client NRPE. Il est recommandé de mettre une valeur assez basse qui ne dépasse pas les 30 secondes.

  • connection_timeout : c’est le paramètre qui spécifie le nombre maximum de secondes pendant lesquelles le démon NRPE attend qu’une connexion soit établie avant de quitter. En cas d’échec de la connexion, il faut revoir la configuration réseau entre le serveur central et l’hôte.

  • debug : cette option détermine si les messages de débogage sont enregistrés ou pas dans le log système. Cette option est utile dans le cas où vous aurez des problèmes. Il faut passer cet argument à 1 pour activer le débogage.

Après avoir configuré les paramètres nécessaires pour le bon fonctionnement de l’agent NRPE, il faut également écrire les commandes à exécuter lors d’une requête.

La commande doit être définie dans le fichier nrpe.cfg sous cette forme :

command[nom]=chemin_du_plugin arguments

Le nom de la commande est utilisé par check_nrpe pour envoyer la requête à l’agent NRPE. Généralement, le nom de la commande correspond au nom du plugin. Par exemple la commande check_load va utiliser le plugin check_load pour contrôler la charge du système.

Aussi il faut indiquer dans la commande le chemin correct pour le plugin à exécuter. Il est recommandé de regrouper tous les plugins dans un seul répertoire /usr/local/nagios/libexec/. Le paramétrage des arguments est optionnel dans cette étape et vous pouvez laisser l’utilisateur les spécifier lors de l’envoi de la requête. Dans ce cas il faut passer la valeur 1 dans la directive dont_blame_nrpe.

En bas du fichier check_nrpe, nous trouvons des exemples pour des commandes sans arguments :

Commande pour contrôler le nombre d’utilisateurs connectés :

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

Commande pour contrôler la charge du système :

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

Commande pour contrôler l’espace disque de la partition /dev/ :

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

Commande pour contrôler le nombre de processus zombie :

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

Commande pour contrôler le nombre total de processus :

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

Et d’autres commandes avec arguments :

command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$
command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$
command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p   
$ARG3$
command[check_procs]=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -s
$ARG3$

Dans le fichier de configuration nrpe.cfg, il y a la possibilité d’inclure d’autres fichiers de configuration. La directive include permet d’inclure un autre fichier de configuration comme s’il était écrit directement dans le fichier nrpe.cfg.

include=/usr/local/nagios/etc/autre_config.cfg

L’intérêt d’utiliser cette option est de mieux organiser et alléger le fichier de configuration de NRPE. L’idée consiste à avoir le même fichier de configuration nrpe.cfg dans tous les hôtes et d’inclure des fichiers spécifiques à chaque hôte. Dans notre cas, nous voulons mettre le fichier nrpe.cfg comme un modèle de configuration de NRPE pour toutes les machines et inclure le fichier autre_config.cfg qui contient les configurations particulières à chaque hôte.

c. Démarrage de l’agent

Après avoir configuré NRPE, il nous reste à lancer l’agent pour accepter les requêtes depuis le serveur Nagios.

Dans le cas où l’installation de NRPE est faite avec les gestionnaires des paquetages apt ou yum, l’agent peut être lancé comme tous les autres services Linux par cette commande :

/etc/init.d/nrpe  start

Avec une installation par compilation, la méthode la plus simple pour démarrer NRPE est d’utiliser le mode standalone. Avec ce mode, NRPE se lance avec l’utilisateur spécifié dans son fichier de configuration. Pour lancer NRPE en mode standalone il faut un appel au programme nrpe dans le répertoire /usr/local/nagios/bin/ avec ces paramètres :

/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg

Pour surveiller son état, il vaut mieux que NRPE soit lancé comme un service. Pour cela, il faut créer un script de démarrage sous le répertoire /etc/init.d/.

Pour les distributions Ubuntu, Debian et OpenSuse, on peut créer le script à partir des fichiers fournis en exemple dans les sources.

cd /tmp/nrpe-15 
cp sample/init-script.debian /etc/init.d/nrpe

Pour les autres distributions Linux comme CentOS ou Red Hat, il faut écrire le script en soi-même. L’exemple suivant est un script qui peut être utilisé pour configurer NRPE comme un service.

#! /bin/sh 
case "$1" in 
start) 
echo -n "Starting NRPE daemon..." 
/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg 
echo "NRPE is started" 
;; 
stop) 
echo -n "Stopping NRPE daemon..." 
kill $(ps -ef | grep iperf | grep -v grep| awk ’{print $2}’); 
sleep 10 
echo " NRPE is stopped" 
;; 
restart) 
$0 stop 
sleep 2 
$0 start 
;; 
*) 
echo "Usage: nrpe start|stop|restart" 
;; 
esac 
exit 0

Après avoir écrit le script, il reste à ajouter NRPE comme un service en utilisant la commande chkconfig.

chkconfig --add nrpe

Il ne faut pas oublier de configurer l’hôte pour que le service NRPE soit lancé à son démarrage. La commande utilisée pour lancer NRPE dépend du système de la machine :

Pour un système Red Hat ou CentOS :

chkconfig nrpe on

Et pour un système Ubuntu ou Debian :

update-rc.d nrpe default

Une autre méthode utilisée pour démarrer le daemon NRPE consiste à utiliser l’un des deux « super » serveurs inetd/xinetd.

Pour exécuter NRPE avec le serveur xinetd, il faut tout d’abord créer un fichier avec un nom NRPE sous le répertoire /etc/xinetd/ et il ressemble à ceci :

service nrpe { 
flags = REUSE 
type = UNLISTED 
port = 5666 
socket_type = stream 
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.5.50  
}

Lorsque NRPE est lancé avec inetd ou xinetd, plusieurs paramètres comme server_portserver_addressnrpe_user et npre_group dans le fichier de configuration nrpe.cfg seront ignorés puisque inetd et xinetd prend en charge cette configuration. L’option only_from remplace le paramètre allowed_hosts dans le fichier nrpe.cfg. Elle contient les adresses IP du serveur Nagios.

Ensuite, il faut ajouter cette ligne dans le fichier /etc/services :

nrpe 5666/tcp

Cette ligne indique que le service NRPE est associé au port 5666.

La dernière étape pour démarrer NRPE avec le « super » serveur xinetd est d’exécuter la commande suivante :

/etc/init.d/xinetd reload 

3. Contrôle à distance avec NRPE

a. Configuration Nagios pour NRPE

Après la configuration de NRPE dans la machine cible pour accepter les requêtes depuis le serveur Nagios, il nous reste à configurer Nagios pour communiquer avec NRPE.

La configuration de Nagios est simple, il suffit d’installer le plugin check_nrpe qui va jouer le rôle d’un canal de communication entre NRPE et Nagios.

Sous un système Ubuntu/Debian, on peut installer check_nrpe en exécutant cette commande :

sudo apt-get install nagios-nrpe-plugin

Pour une machine Red Hat/CentOS, on peut utiliser cette commande :

sudo yum -y install nagios-plugins-nrpe

La commande qui utilise le plugin check_nrpe doit être sous cette forme :

check_nrpe  -H <host> [-b <bindaddr>] 
           [-4] [-6] [-n] [-u]  
           [-p <port>] [-t <timeout>]  
           [-c <command>] [-a <arglist...>]

Avec le plugin check_nrpe, on peut utiliser les options suivantes :

  • -H, –host : adresse IP ou nom DNS de la machine où on a installé l’agent NRPE.

  • -c, –command : le nom de la commande à exécuter et qui doit être définie dans le fichier de configuration nrpe.cfg.

  • -b, –bindaddr : lier à l’adresse IP locale.

  • -4 : utiliser seulement les adresses IP ipv4.

  • -6 : utiliser seulement les adresses IP ipv6.

  • -n, –no-ssl : désactiver la communication avec SSL.

  • -u, –unknown-timeout : pour changer l’état de « Critical » à « Unknown » dans le cas où le timeout est dépassé.

  • -p, –port : le port pour établir la connexion avec l’agent NPRE. Par défaut est 5666.

  • -t, –timeout : le temps en secondes pendant lesquelles les commandes s’exécutent.

Pour être sûr que la communication entre Nagios et l’agent NRPE se passe bien, nous allons lancer le plugin check_nrpe depuis le serveur Nagios avec comme paramètre l’adresse IP de l’hôte :

./check_nrpe -H 192.168.16.5 
 
NRPE v2.15

L’adresse IP 192.168.16.5 est celle de l’hôte sur lequel est lancé NRPE. Le résultat de cette commande devrait être la version du daemon NRPE. Si ce n’est pas le cas, il faut revoir la configuration réseau et aussi la configuration de l’agent.

b. Contrôler un serveur Linux avec NRPE

Nous avons entrepris dans les parties précédentes, de configurer l’hôte distant et Nagios pour la supervision à distance.

Nous allons maintenant utiliser notre environnement pour contrôler les ressources d’un serveur Linux et les services offerts par celui-ci.

Les ressources et les services que nous allons contrôler sont les suivants :

  • La charge système ;

  • L’espace disque libre et utilisé ;

  • Le pourcentage d’utilisation de mémoire ;

  • L’état d’un service (par exemple le service apache) ;

  • Le nombre d’utilisateurs connectés ;

  • Le nombre total des processus ;

  • La mise à jour du système .

Avant de commencer la configuration des commandes avec le plugin check_nrpe, il faut ajouter la machine dans le fichier de configuration des hôtes.

define host { 
     use                   generic-host      
     host_name             SRV-Linux       
     alias                 Serveur Linux        
     address               192.168.16.5 
}

N’oubliez pas de créer deux commandes qui font appel au plugin check_nrpe une avec arguments et l’autre sans argument :

define command { 
   command_name     check_nrpe 
   command_line     $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 
}

La commande ci-dessous fait appel au plugin check_nrpe avec des arguments :

define command{ 
   command_name    check_nrpe_arg 
   command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ a 
$ARG2$ 
}

Pour contrôler la charge système d’un serveur Linux, nous venons de configurer le fichier nrpe.cfg dans la machine distante en ajoutant la commande check_load. Cette commande utilise le plugin check_load qui permet d’extraire les valeurs de la charge système sur des intervalles définis.

Pour vérifier la charge système de notre serveur Linux à partir du serveur Nagios manuellement, nous allons exécuter cette commande :

./check_nrpe -H 192.168.16.5 -c check_load 
 
OK - load average: 0.00, 0.00, 0.00|load1=0.000;15.000;30.000;0; 
load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;

Il ne reste maintenant qu’à créer un service pour superviser la charge système comme le suivant :

define service{ 
   use                         generic-service 
   host_name                   SRV-Linux 
   service_description         CPU Load 
   check_command               check_nrpe!check_load 
}

Nous pouvons aussi personnaliser les seuils d’avertissement et critique en utilisant la commande check_nrpe_arg comme illustrée ci-dessous :

./check_nrpe -H 192.168.16.5 -c check_load -a  
 
OK - load average: 0.00, 0.00, 0.00|load1=0.000;15.000;30.000;0; 
load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;

Ensuite, il faut modifier le service pour qu’il prenne en compte des arguments :

define service{ 
   use                      generic-service 
   host_name                SRV-Linux 
   service_description      CPU Load 
   check_command            check_nrpe_arg!check_load!15,10,5!30,25,20 
}

De manière générale, on peut suggérer les services ci-dessous pour assurer une supervision basique d’un serveur Linux.

Service permettant de surveiller la charge du système :

define service{ 
   use                         generic-service 
   host_name                   SRV-Linux 
   service_description         CPU_Load 
   check_command               check_nrpe_arg!check_load! 
}

Service permettant de surveiller la partition / de disque :

define service{ 
   use                         generic-service 
   host_name                   SRV-Linux 
   service_description         Espace_Disque  
   check_command               check_nrpe_arg!check_disk!/! 
}

Service permettant de surveiller le nombre d’utilisateurs connectés :

define service { 
   use                       generic-service 
   host_name                 SRV-Linux 
   service_description       Nombre_des_utilisateurs_connectés 
   check_command             check_nrpe_arg!check_users! 
}

Service permettant de surveiller le nombre total des processus :

define service{ 
   use                       generic-service 
   host_name                 SRV-Linux 
   service_description       Nombre_des_processus 
   check_command             check_nrpe_arg!check_procs! 
}

Service permettant de surveiller la mise à jour du système :

define service{ 
   use                       generic-service 
   host_name                 SRV-Linux 
   service_description       System_update 
   check_command             check_nrpe_arg!check_apt! 
}

4. Diagnostic et solutions pour les problèmes du contrôle avec NRPE

Si vous avez suivi soigneusement les étapes décrites dans la section précédente pour configurer NRPE, tout devrait fonctionner sans aucun problème. Si ça ne marche pas et si vous avez rencontré des problèmes, vous trouverez ci-dessous une liste des erreurs relatives à l’exécution des contrôles à distance avec NRPE avec des pistes pour les résoudre.

  • CHECK_NRPE: Error – Could not complete SSL handshake

Ce problème est le plus connu avec NRPE. Il existe différentes causes pour qu’il apparaisse, bien que la plus probable soit que l’adresse IP du serveur Nagios ne soit pas définie dans le fichier nrpe.cfg de l’hôte distant.

Alors, vous devez connecter à l’hôte distant en tant qu’utilisateur root et éditer le fichier nrpe.cfg comme ci-dessous :

vi /usr/local/nagios/etc/nrpe.cfg

Et ajouter l’adresse IP de votre serveur Nagios dans la liste des hôtes alloués :

allowed_hosts=127.0.0.1,<ip serveur nagios>

Si vous utilisez Xinetd pour contrôler le démon NRPE, alors vous devez ajouter l’adresse IP du serveur Nagios au fichier de configuration : /etc/xinetd.d/nrpe :

vi /etc/xinetd.d/nrpe

Et ajouter l’adresse IP de votre serveur Nagios dans la liste des hôtes alloués :

only_from = 127.0.0.1 <ip serveur nagios>

L’autre cause commune est que NRPE n’a pas été compilé avec l’activation de SSL. Dans ce cas, vous devez recompiler NRPE avec l’activation de SSL. Accédez à votre répertoire source de NRPE et le recompiler en utilisant l’option enable-ssl :

cd /tmp/nrpe-2.15 
./configure -enable-ssl 
make all 
make install

Il ne faut pas oublier de redémarrer le service NRPE ou Xinetd à chaque modification de l’un des fichiers de configuration :

/etc/init.d/nrpe restart
service xinetd restart
  • CHECK_NRPE: Received 0 Bytes From Daemon. Check The Remote Server Logs For Error

Avant de commencer le diagnostic de ce problème, il faut être sûr que le service NRPE est démarré sur l’hôte distant. Ensuite, il faut se concentrer sur les arguments passés dans la commande. En effet, si vous passez des arguments à l’hôte distant via NRPE, l’utilisation de l’argument devrait être cohérente entre le service défini sur le serveur Nagios et les arguments déclarés dans la directive de commande dans le nrpe.cfg de l’hôte distant. En premier lieu, il faut vérifier la directive dont_blame_nrpe :

cat /usr/local/nagios/etc/nrpe.cfg | grep blame

Le résultat attendu devrait être :

dont_blame_nrpe=1

Si ce n’est pas le que cas et que la directive dont_blame_nrpe est réglée sur 0, les arguments ne seront pas acceptés pour les autres contrôles que ceux spécifiés dans le fichier nrpe.cfg lui-même. Alors, il faut modifier le fichier /usr/local/nagios/etc/nrpe.cfg et définir la directive dont_blame_nrpe à 1.

L’autre cause est que NRPE n’a pas été compilé avec l’activation des arguments. Pour activer les arguments de commande dans NRPE, vous devriez recompiler en utilisant l’option –enable-command-args :

cd /tmp/nrpe-2.15 
./configure --enable-command-args   
make all 
make install
  • No Output Returned From Plugin

Cette erreur est due soit à un problème de permission sur le plugin check_nrpe, soit un fichier de plugin est manquant. La solution la plus courante pour la première cause est de vérifier les autorisations sur le plugin check_nrpe en utilisant la commande suivante :

ls -l / usr / local / nagios / libexec / check_nrpe

Le résultat doit ressembler à :

-rwxrwxr-x. 1 nagios nagios 75444 Nov 21 01:38 check_nrpe

Si ce n’est pas le cas, il faut changer les autorisations avec ces commandes :

chown nagios:nagios /usr/local/nagios/libexec/check_nrpe 
chmod u+rwx /usr/local/nagios/libexec/check_nrpe 
chmod u+rx /usr/local/nagios/libexec/check_nrpe

Une autre cause, qui peut engendrer cette erreur, est que le plugin référencé par la directive de commande dans nrpe.cfg n’existe pas dans le dossier des plugins ou la directive de commande est nommée de manière incorrecte. La première étape consiste à s’assurer que le plugin sur l’hôte distant se trouve bien dans le dossier dédié aux plugins. La deuxième étape est de vérifier que la déclaration de la commande dans le fichier nrpe.cfg est correcte : il faut vérifier que le nom de la commande, le chemin de plugin et aussi son nom sont déclarés correctement.

  • Connection Refused By Host

Si la machine distante refuse de communiquer avec le serveur Nagios en utilisant l’agent NRPE, il faut s’assurer qu’aucun pare-feu entre l’hôte et le serveur ne bloque et filtre le port 5666 et que la directive allowed_hosts est bien configurée.