Nous étudierons, dans cet article, l'installation du programme NRPE en mode démon (daemon). je vous propose l'installation sur un serveur CentOS pour nrpe3 et sur un poller Centreon pour nrpe2, nous verrons les différentes installations : protocole ssl ou non, passage des arguments ou non. L’exemple ci-dessous a été réactualisé avec la dernière installation de Centreon 3.4.
Comme l'article du client NRPE, nous étudierons le démon NRPE 3 en gardant les infos pour le client NRPE 2.
Comme l'article du client NRPE, nous étudierons le démon NRPE 3 en gardant les infos pour le client NRPE 2.
1 - Version 3
1.1 Installation du daemon NRPE3 sur un hôte CentOS 6
Nous utiliserons un serveur sous CentOS 6. Pour installer le paquet centreon-nrpe3-daemon, nous ajouterons le repo Centreon.
yum install wget -y wget http://yum.centreon.com/standard/3.4/el6/stable/noarch/RPMS/centreon-release-3.4-4.el6.noarch.rpm yum install --nogpgcheck -y centreon-release-3.4-4.el6.noarch.rpm
Installez le paquet suivant
yum install -y centreon-nrpe3-daemon
1.2 Installation des plugins Centreon
Installez les dépendances suivantes
yum install -y perl-Module-Find perl-XML-LibXML perl-JSON perl-libwww-perl perl-XML-XPath perl-Net-Telnet perl-Net-DNS perl-DBI perl-DBD-MySQL perl-DBD-Pg
Installez git pour le dépôt GitHub des plugins Centreon.
yum install -y git
Installez les plugins Centreon.
mkdir -p /usr/lib/centreon/plugins git clone https://github.com/centreon/centreon-plugins.git /usr/lib/centreon/plugins chmod +x /usr/lib/centreon/plugins/centreon_plugins.pl
1.3 Configuration du daemon NRPE
Il faut configurez le démon NRPE, éditez le fichier de configuration.
vi /etc/nrpe/centreon-nrpe3.cfg
Modifiez le paramètre only_from, ajoutez l'adresse IP de notre serveur de supervision.
allowed_hosts=127.0.0.1,172.16.209.230
Si vous utilisez des arguments dans votre commande, activez cette option.
dont_blame_nrpe=1
Configurez la commande pour les plugins centreon à la fin du fichier.
command[check_centreon_plugins]=/usr/lib/centreon/plugins/centreon_plugins.pl --plugin=$ARG1$ --mode=$ARG2$ $ARG3$
Avant de démarrer le service nrpe, créez les dossiers suivants
mkdir -p /var/log/nrpe mkdir -p /var/lib/centreon/centplugins
Créez le user centreon-engine
groupadd -g 6001 centreon-engine useradd -u 6001 -g centreon-engine -m -r -d /var/lib/centreon-engine -c "Centreon-engine Admin" -s /bin/bash centreon-engine
Démarrez le service nrpe
service centreon-nrpe3 restart
Activez le démarrage automatique
chkconfig centreon-nrpe3 on
Vérifiez le bon fonctionnement du daemon NRPE et pensez à modifier le firewall.
netstat -at | grep 5666 tcp 0 0 *:5666 *:* LISTEN tcp 0 0 *:5666 *:* LISTEN
1.4 Vérification du fonctionnement
Pour vérifier le fonctionnement de notre plugin, connectez-vous sur le serveur de supervision. Lancez la commande suivante :
/usr/lib/centreon/plugins/check_centreon_nrpe3 -H 192.168.0.131 NRPE v3.2.0
-
Messages d'erreurs
- Attention, si vous recevrez le message suivant, vérifiez votre réseau ou le firewall de votre machine distante :
connect to address 192.168.0.131 port 5666: No route to host
connect to host 192.168.0.131 port 5666: No route to host
Si vous recevrez le message suivant, vérifiez si le service n'est pas arrêté :connect to address 192.168.0.131 port 5666: Connection refused
connect to host 192.168.0.131 port 5666: Connection refused
Si vous recevrez le message suivant, vérifiez si vous avez bien autorisé le client à accéder au serveur (option allowed_hosts) :CHECK_NRPE: Error - Could not connect to 192.168.0.140: Connection reset by peer
Pour la configuration vous avez la possibilité d'utiliser la configuration ci-dessous de la version 2 de Nrpe ou d'utiliser la configuration sur la page NRPE CENTREON.
2 - Version 2
2.1 Installation du daemon NRPE sur un hôte
Installez le paquet suivant
yum install centreon-nrpe-daemon
2.2 Configuration du daemon NRPE
Editez le fichier de configuration du démon nrpe.
vi /etc/nrpe/centreon-nrpe.cfg
Modifiez le paramètre only_from, ajoutez l'adresse IP de notre serveur de supervision.
allowed_hosts=127.0.0.1,172.16.209.230
Si vous utilisez des arguments dans votre commande, activez cette option.
dont_blame_nrpe=1
Redémarrez le service nrpe
service centreon-nrpe restart
Vérifiez le bon fonctionnement du daemon NRPE et pensez à modifier le firewall.
netstat -at | grep 5666 tcp 0 0 *:5666 *:* LISTEN tcp 0 0 *:5666 *:* LISTEN
2.3 Vérification du fonctionnement
Voici le message d'erreur reçu avec la version 2.15-3.el6 de centreon-nrpe-plugin
/usr/lib/nagios/plugins/check_centreon_nrpe -H 127.0.0.1
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
CentOS 6
Le paramètre SIZE=8192 dans le script /etc/init.d/centreon-nrpe provoque cette erreur. En mettant le paramètre par défaut à 1024, vous n'avez plus ce message d'erreur. Sinon, il faudra mettre le même paramètre pour la commande check_centreon_nrpe.
CentOS 7
Le paramètre NRPE_SSL_OPT="-m 8192" dans le script /etc/sysconfig/centreon-nrpe provoque cette erreur. En mettant le paramètre par défaut à "-m 1024", vous n'avez plus ce message d'erreur. Sinon, il faudra mettre le même paramètre pour la commande check_centreon_nrpe.
Pour vérifier le fonctionnement de notre plugin, connectez-vous sur le serveur de supervision. Lancez la commande suivante :
/usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.230 NRPE v2.15
2.4 Test de fonctionnement
Voici le message d'erreur reçu avec la version 2.15-3.el6 de centreon-nrpe-plugin lors de l'utilisation des commandes
/usr/lib/nagios/plugins/check_centreon_nrpe -H 127.0.0.1 -c check_load
NRPE: Unable to read output
Le problème vient des chemins erronés pour les alias dans le fichier de configuration /etc/nrpe/centreon-nrpe.cfg. Par exemple, il y a
command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
il faut
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
Voici la copie d'écran du problème
Les commandes utilisées par NRPE sont enregistrées dans le fichier de configuration /etc/nrpe/centreon-nrpe.cfg. Les alias pré-configurés sont :
- check_users : vérification des utilisateurs connectés sur l'hôtes
- check_load : vérification de la charge de l'hôte
- check_hda1 : vérification du disque hda1 ( à configurer par rapport au matériel embarqué)
- check_zombie_procs : vérification du nombre de processus zombie
- check_total_procs : vérification du nombre de processus actifs.
Quatre autres commandes sont commentées, il s'agit de commandes utilisant des arguments. Si vous utilisez cette option, assurez-vous bien d'avoir une connexion TCP cryptée pour des raisons évidentes de sécurité. Nous verrons comment utiliser ces arguments. Pour l'instant, vous pouvez vérifier le fonctionnement du plugin NRPE sur le serveur de supervision.
- check_users : vérification des utilisateurs connectés sur l'hôtes
- check_load : vérification de la charge de l'hôte
- check_hda1 : vérification du disque hda1 ( à configurer par rapport au matériel embarqué)
- check_zombie_procs : vérification du nombre de processus zombie
- check_total_procs : vérification du nombre de processus actifs.
Quatre autres commandes sont commentées, il s'agit de commandes utilisant des arguments. Si vous utilisez cette option, assurez-vous bien d'avoir une connexion TCP cryptée pour des raisons évidentes de sécurité. Nous verrons comment utiliser ces arguments. Pour l'instant, vous pouvez vérifier le fonctionnement du plugin NRPE sur le serveur de supervision.
check_users
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_users UTILISATEURS OK - 2 utilisateurs actuellement connectés sur |users=2;5;10;0check_load
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_load OK - Charge moyenne: 0.03, 0.79, 0.71|load1=0.030;15.000;30.000;0; load5=0.790;10.000;25.000;0; load15=0.710;5.000;20.000;0;check_zombie_procs
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_zombie_procs PROCS OK: 0 processus avec ETAT = Zcheck_total_procs
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_total_procs PROCS OK: 117 processus
2.5 Configuration dans Centreon
2.5a Les templates de service
La configuration dans Centreon sera très simple. Nous utiliserons le template de base check_nrpe. Ensuite, il reste à réaliser les templates de service pour les commandes précédentes (check_users, check_load, check_zombie_procs, check_toatl_procs) avec la macro personnalisée $_SERVICECOMMAND$. Comme ces commandes n'ont pas besoin d'arguments supplémentaire, nous initialiserons la macro $_SERVICEARGUMENT$ par une valeur non significative. Astuce pour avoir la visualisation des templates de la même catégorie, nommez vos templates par le même préfixe comme ci-dessous : Modele_nrpe_users_linux, Modele_nrpe_load_linux, etc.
Centreon-Clapi
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_load_linux;LOAD_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_load_linux;COMMAND;check_load"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_load_linux;ARGUMENT;empty"
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_procs_linux;PROCS_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_procs_linux;COMMAND;check_total_procs"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_procs_linux;ARGUMENT;empty"
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_zombie_linux;ZOMBIE_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_zombie_linux;COMMAND;check_zombie_procs"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_zombie_linux;ARGUMENT;empty"
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_users_linux;USERS_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_users_linux;COMMAND;check_users"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_users_linux;ARGUMENT;empty"
2.5b Le template d'hôte
Ces quatre templates de service seront associés au modèle d'hôte OS-Linux-Nrpe.
Centreon-Clapi
centreon -u admin -p password -o HTPL -a add -v "OS-Linux-Nrpe;Modele_OS_Linux_Nrpe;;generic-active-host-custom;Central;"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_users_linux;OS-Linux-Nrpe"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_load_linux;OS-Linux-Nrpe"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_zombie_linux;OS-Linux-Nrpe"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_procs_linux;OS-Linux-Nrpe"
2.6 Résultats dans l’interface de Centreon
On applique ce template à notre hôte linux. Et voici le résultat :
2.7 Utilisation des arguments avec NRPE
2.7a Configuration de la configuration sur l'hôte
Editez le fichier /etc/nrpe/centreon-nrpe.cfg. Vérifiez la ligne suivante et décommentez l'alias check_disk
dont_blame_nrpe=1 ....... command[check_disk]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
Redémarrez le service nrpe
service centreon-nrpe restart
Nous pouvons vérifier le fonctionnement du daemon NRPE en lançant la commande suivante depuis le serveur de supervision.
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_disk -a 80 90 /var DISK OK - free space: / 14468 MB (86% inode=94%);| /=2212MB;17501;17491;0;17581
Dans un précédent article, j'avais indiqué qu'il fallait protéger par double-quotes les arguments pour le fonctionnement dans Centreon. Mais ce n'est pas suffisant, comme vous pouvez le constater il manque une valeur max dans les données de performances.
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_disk -a "80 90 /var" DISK OK - free space: / 14468 MB (86% inode=94%);| /=2212MB;17501;;0;17581
Les arguments peuvent être protégés par 2 double-quotes comme l'exemple ci-dessous (fonctionnement dans Centreon) :
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_disk -a ""80 90 /var"" DISK OK - free space: / 14468 MB (86% inode=94%);| /=2212MB;17501;17491;0;17581
Autre exemple :
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_load -a 15,10,5 30,25,20 OK - Charge moyenne: 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;
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_load -a "15,10,5 30,25,20" Utilisation: check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15
[root@centreon35 plugins]# /usr/lib/nagios/plugins/check_centreon_nrpe -H 172.16.209.233 -c check_load -a ""15,10,5 30,25,20"" OK - Charge moyenne: 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;
Merci à Daman pour sa remarque judicieuse 👍
2.7b Configuration dans Centreon
2.7b.1 Les templates de service
Nous devrons créer un template de service pour chaque système de fichiers comme l'exemple ci-dessous. Par contre, il sera basé sur le template Model_NRPE en prenant en compte les arguments.
Faites de même pour tout les systèmes de fichiers : /, /home, /tmp etc. Il faudra les associer au template d'hôte OS-Linux-Nrpe.
Centreon-Clapi
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_var_linux;VAR_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_var_linux;COMMAND;check_disk"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_var_linux;ARGUMENT;90 80 /var"
centreon -u admin -p password -o STPL -a setparam -v "Modele_nrpe_var_linux;graph;Traffic"
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_root_linux;ROOT_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_root_linux;COMMAND;check_disk"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_root_linux;ARGUMENT;90 80 /"
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_home_linux;HOME_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_home_linux;COMMAND;check_disk"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_home_linux;ARGUMENT;90 80 /home"
centreon -u admin -p password -o STPL -a add -v "Modele_nrpe_tmp_linux;TMP_linux;Modele_NRPE"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_tmp_linux;COMMAND;check_disk"
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_tmp_linux;ARGUMENT;90 80 /tmp"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_var_linux;OS-Linux-Nrpe"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_root_linux;OS-Linux-Nrpe"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_home_linux;OS-Linux-Nrpe"
centreon -u admin -p password -o STPL -a addhost -v "Modele_nrpe_tmp_linux;OS-Linux-Nrpe"
2.7b.2 Vérifications et résultats
On applique de nouveau la configuration à l'hôte et on admire le résultat :-)
2.7b.3 Amélioration des graphes
Les valeurs des disques renvoyées par les données de performances ne sont pas satisfaisantes et les valeurs Critical et Warning ne correspond pas à ce que nous souhaiterions. Exemple du système de fichier /tmp qui est de 975 Mo. la valeur Warning devrait être à 780 Mo et la valeur Critical à 877 Mo. Et si vous prenez le système de fichier /var, vous avez une échelle de valeur complètement erroné (au lieu de 2 Go vous avez 2.00k )
Il s'agit d'une mauvaise utilisation du plugin check_disk. Nous allons plutôt utiliser les pourcentages d'utilisation des espaces mais il faudra inverser les valeurs :
Warning : nous utiliserons 20% au lieu de 80,
Critical : nous utiliserons 10% au lieu de 90.
Et pour finir nous utiliserons l'option k pour afficher en kilobytes pour être conforme à l'utilisation des graphes avec centreon.
Modifier les templates comme ceci :
Warning : nous utiliserons 20% au lieu de 80,
Critical : nous utiliserons 10% au lieu de 90.
Et pour finir nous utiliserons l'option k pour afficher en kilobytes pour être conforme à l'utilisation des graphes avec centreon.
Modifier les templates comme ceci :
centreon -u admin -p password -o STPL -a setmacro -v "Modele_nrpe_var_linux;ARGUMENT;10% 20% /var"
et l'alias check_disk comme ceci :
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ -k
N'oubliez pas de redémarrer centreon-nrpe et voici le résultat pour le système de fichier /tmp.