Mise en place d’un serveur NAGIOS sur Linux – Installation de NRPE et configuration de Nagios

  • Qu’est-ce que NRPE ?

 NRPE, ces initiales signifient « Nagios Remote Plugin Executor » s’additionnant à Nagios pour récupérer des informations sur un serveur GNU/Linux distant. Il permet donc de surveiller le serveur sous tout les angles possibles (charge du processeur, utilisation de la mémoire, l’espace disque, etc…) qui ,en temps normal, ne sont pas accessible de l’extérieur.

 

Afin d’interroger un client NRPE il faut utiliser le greffon « check_nrpe » sur le serveur Nagios.

  • Schéma de fonctionnement de NRPE avec Nagios :

Pour débroussailler ce schéma, passons aux explications. Avec NRPE, nous avons un système de Client/Serveur et contrairement à ce qu’on peut penser, c’est Nagios le client NRPE car c’est lui qui va aller à la pêche aux infos ! Donc, sur le serveur distant à superviser, on y installe le serveur NRPE et sur le serveur Nagios, on y mettra le client NRPE !

 

  • Mise en place du service :

Sur le serveur Nagios :

Commençons par installer le plugin NRPE sur notre serveur Nagios. Pour cela, faites un petit coup d’apt-get install !

sudo apt-get install nagios-nrpe-plugin

Une fois installé, allons vérifier que le plugin est bien déclaré dans le fichier de configuration des commandes « /etc/nagios/commands.cfg » : 

######
# NRPE
######

# ‘check_nrpe’ command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Sur votre serveur Linux à surveiller :

Cette étape est un peu plus longue, donc ne perdons pas de temps et passons à l’installation du daemon NRPE et des différents plugins Nagios qui seront utilisés localement par le daemon NRPE :

sudo apt-get install nagios-nrpe-server

sudo apt-get install nagios-plugins

Dans le fichier /etc/nagios/nrpe.cfg , allez modifier la ligne suivante:


allowed_hosts = Mettre ici l’adresse IP de votre serveur Nagios

Maintenant, il faut rendre le démarrage du daemon automatique au démarrage du serveur :

chkconfig –add nagios-nrpe-server

Si vous avez Iptable d’installer sur notre serveur distant, ajoutez y cette ligne (à adapter) pour autoriser les requêtes NRPE à passer :

iptables -I INPUT 10 -p tcp –dport 5666 -j ACCEPT

Il ne vous reste plus qu’à démarrer le service NRPE :

/etc/init.d/nagios-nrpe-server start

Avant de pouvoir tester la communication entre les deux serveurs, assurez-vous que le fichier « check_nrpe » est bien présent dans le répertoire « /usr/local/nagios/libexec ». S’il est absent , copiez le à partir du répertoire « /usr/lib/nagios/plugins » :

cp /usr/local/nagios/libexec/check_nrpe /usr/lib/nagios/plugins/

De plus, vérifiez bien que l’utilisateur ‘Nagios’ a bien les droits sur les répertoires suivants :

  • /usr/local/nagios/libexec/
  • /usr/lib/nagios/plugins/
  • /etc/nagios/

Vous devez avoir des droits similaires à celui-ci :

Si le résultat est différent, alors utilisez les commandes chmod 775 /*suivi du répertoire*/, et chown -R nagios:nagios /*suivi du répertoire*/.

 Attention : Cette procédure est a effectuer sur le serveur Nagios, mais également sur le client !

 Remarque : Lors de notre installation finale, nous avons rencontré un problème assez particulier. Normalement, après l’installation des paquets sur le serveur distant, le dossier « /usr/local/nagios/libexec » doit se créer automatiquement avec divers fichiers (notamment le « check_nrpe »). Pour une raison obscure, ce dossier ne sait pas créé ainsi que les fichiers devant être contenu. C’est pour cette raison que nous vous mettons à disposition le fichier « check_nrpe » à aller coller dans le dossier « /usr/lib/nagios/plugins ».

 

Pour être sûr que ça fonctionne bien, éditez le fichier « /etc/nagios/nrpe.cfg » et vérifiez que les commandes sont bien déclarés dans le dossier « /usr/lib/nagios/plugins » comme ceci :

 

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10

 

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

 

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

 

command[check_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z

 

command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

 

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p

 

 

On teste la communication :

A toute installation, elle a droit à un test pour valider le fonctionnement. Donc c’est parti ! Pour tester la communication entre le serveur Nagios et le serveur distant, rendez-vous dans le dossier des plugins « /usr/lib/nagios/plugins » :

./check_nrpe -H Adresse_IP_du_serveur_Linux_distant

Le résultat doit être :

NRPE v2.7

 

Si tout est OK, cette commande devrait renvoyer la version du daemon NRPE. Vous pouvez tester directement les plugins avec la commande suivante (exemple donnée pour un check de la charge):

./check_nrpe -H Adresse_IP_du_serveur_Linux -c check_load

Nous obtenons ce résultat :

 OK – load average: 0.06, 0.03, 0.01|load1=0.060;15.000;30.000;0; load5=0.030;10.000;25.000;0; load15=0.010;5.000;20.000;0;

La dernière étape consiste à modifier les fichiers de configuration de Nagios pour intégrer le monitoring du/des serveur Linux. Il faut savoir que vous avez deux manières de procéder, soit vous n’avez pas Centreon d’installer et vous allez ajouter les hôtes et les services à la main dans les fichiers de configuration (procédure qui suit) ou vous avez installer Centreon et à ce moment là, passez à la partie « Ajouter un client à partir de Centreon ».

 

Pour ajouter un client à partir de Nagios :

 

Il faut dans un premier temps éditer votre fichier de configuration des hosts (hosts.cfg par défaut) et y ajouter votre machine Linux :

define host {
use generic-host
host_name linus
alias Ma machine Linux
address 192.168.0.7
}

Puis ajouter les services offerts par NRPE (dans le fichier services.cfg), quelques exemples:

 

# Charge CPU
define service{
use generic-service
host_name remotehost
service_description CPU Load
check_command check_nrpe!check_load
}

# Memoire
define service{
use generic-service
host_name remotehost
service_description Memory
check_command check_nrpe!check_mem
}

Pour ajouter des nouveaux plugins executable par NRPE, il faut éditer le fichier /etc/nagios/nrpe.cfg et ajouter une ligne par service (par exemple pour les commandes ‘check_load’ et check_disk’) :

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10%

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

 

Ne pas oublier de relancer le daemon quand on change le fichier de configuration (nrpe.cfg):

service nagios-nrpe-server restart

Source : blog.nicolargo.com

 

Pour ajouter un client sur Centreon:

 

L’ajout et la configuration d’un client se fait en trois étapes :

  1. Création d’un hôte
  2. Création d’une commande (éventuellement)
  3. Ajout des service liés

La création d’un hôte se fait assez facilement. Il faut se rendre dans :

ConfigurationHôtesAjouter

puis remplir le formulaire :

  • Nom de l’hôte
  • Alias
  • Adresse IP / DNS
  • Communauté SNMP(la communauté correspond à celle que vous avez donné auparavant) && Version (pour la version, il faut utiliser la 3 car c’est la version 3 de snmp qui était présent dans les paquets.)
  • Modèles multiples de l’hôte (vous pouvez si vous le voulez choisir un modèle d’hôte si vous en avez déjà configuré un).
  • Pour les autres informations, c’est selon votre choix.

Puis faites « sauvegarder ».

Ensuite, pour créer une commande, il faut se rendre dans :

Configuration -> Commandes -> Ajouter

Au préalable, il faudra, si ce n’est pas fait, créer la commande check_nrpe. En voici l’exemple de création ci-dessous :

Enfin, pour créer un service, il faut se rendre dans :

Configuration -> Services -> Ajouter

Puis remplir le formulaire :

  • Description
  • Modèle de service (Utiliser un modèle permet d’éviter de remplir les champs requis)
  • Commande de vérification : il faut utiliser la commande ‘check_nrpe‘ car c’est grâce à elle que l’on récupèrera les informations.
  • Arguments : pour l’argument à mettre, si par exemple on souhaite connaître l’espace disque, nous allons mettre en argument ‘!check_disk(attention : le ‘!‘ est très important et il ne faut pas l’oublier) , qui est la commande qui va récupérer les informations nécessaires.

Sous l’onglet ‘Relations‘, il faudra sélectionner l’hôte auquel on souhaite associer le service.

A la fin, ne pas oublier d’exporter les données sur Nagios en allant sur :

Configuration → Nagios , cocher toutes les cases et cliquer sur exporter, puis vérifier s’il n’y a pas d’erreur.

En cas de problème avec un hôte, notamment s’il s’affiche en état « Down » alors, qu’il est « Up », il faut se rendre sous  Configuration -> Hôtes puis selectionner l’hôte en erreur. Il faut ensuite lui ajouter une commande de vérification : sélectionnez la commande « Check_centreon_ping » et lui donner les arguments de l’exemple en cliquant sur la flèche bleue : 

 

Leave Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *