Menu


Stacks Image 9724
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.

1 - Version 3

Stacks Image 1170967
schéma de principe

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

Stacks Image 35946
schéma de principe

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

Stacks Image 1170855
Avertissement
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.

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.
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

Stacks Image 1170858
Avertissement
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

pb_nrpe
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
[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;0
check_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 = Z
check_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.
Stacks Image 36226
Exemple d'un template
Stacks Image 1170827
Templates de service
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.
Stacks Image 36263
Template 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 :
Stacks Image 36300
Les plugins en mode de fonctionnement

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.
Stacks Image 36459
Templates de service pour l'alias check_disk
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 :-)
Stacks Image 36488
Les plugins avec arguments ont été rajoutés

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 )
Stacks Image 1170852
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 :
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.
Stacks Image 1170871
comments powered by Disqus