Icinga – Supervision des hôtes Linux via NRPE

Il existe deux grandes familles de services qui peuvent être supervisés : les services dits « privés » (CPU, espace disque…) et les services dits « publics » (ping, service SSH, SNMP, MySQL…). La supervision des services « privés » sur des machines Linux nécessite l’utilisation d’un agent appelé NRPE (Nagios Remote Plugin Executor). Nous allons détailler ici l’installation, la configuration et l’utilisation de NRPE.

Concernant la supervision des services « publics » et des hôtes eux-mêmes, se référer au chapitre Nconf, Création d’un service (exemple du check_snmp).

NRPE

NRPE est un agent utilisé pour la remontée des contrôles des services dits « privés » sur les machines Linux. Ces contrôles concernent toutes les informations relatives à l’environnement privé de la machine, comme la charge CPU, l’espace disque, etc.

Tous les serveurs de supervision (central et secondaires) ont donc un client NRPE installé et les machines supervisées ont un serveur NRPE en écoute.

Installation d’un client NRPE sur un serveur de supervision

1. Installer au préalable les packages gcc, openssl et libssl-dev sur le serveur de supervision

1
#> apt-get install gcc openssl libssl-dev

2. Télécharger NRPE :

1
#> wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz/ -O nrpe.tgz

3. Décompresser et désarchiver le répertoire :

1
#> tar xzf nrpe.tgz

4. Se placer dans le répertoire et compiler en ajoutant les options suivantes :

1
2
3
#> cd nrpe
#> ./configure --enable-ssl --enable-command-args
#> make all

5. Déplacer le répertoire nrpe pour faire en sorte que son emplacement soit /usr/local/nrpe :

1
#> mv ./nrpe /usr/local

6. Editer le fichier de configuration de NRPE :

1
#> nano /usr/local/nrpe/sample-config/nrpe.cfg

Mettre à 1 les valeurs des clés suivantes :

1
2
dont_blame_nrpe=1
debug=1

7. Depuis NCONF :

  • Créer une nouvelle commande dans Checkcommands :
1
2
3
check command name : check_nrpe
check command line : /usr/local/nrpe/src/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
debug=1

Installation de NRPE sur une machine Linux supervisée

1. Suivre les étapes d’installation 1 à 5 détaillées précédemment (installation de NRPE sur un serveur de supervision).

2. Editer le fichier de configuration de NRPE :

1
#> nano /usr/local/nrpe/sample-config/nrpe.cfg
  • Donner la valeur 1 aux clés suivantes :
1
2
dont_blame_nrpe=1
debug=1
  • Ajouter la commande check_disk permettant de vérifier l’espace disque :

Icinga - Supervision des hôtes Linux via NRPE

3. Pour permettre au serveur NRPE d’être géré par le super daemon xinetd (pour des questions de sécurité essentiellement), installer xinetd sur la machine supervisée :

1
#> apt-get install xinetd

4. Une fois xinetd installé, créer le fichier de configuration de xinetd propre au service nrpe :

1
#> touch /etc/xinetd.d/nrpe

5. Editer ce fichier et copier la configuration suivante :

1
#> nano /etc/xinetd.d/nrpe

Icinga - Supervision des hôtes Linux via NRPE

Devant la clé server, indiquer l’emplacement du plugin nrpe (chemin absolu).

Devant la clé server_args, indiquer l’emplacement du fichier de configuration nrpe.cfg (indiquer que c’est le fichier de configuration avec l’option -c et finir par l’option –inetd). Indiquer devant la clé only_from l’adresse du serveur de supervision.

6. Créer l’utilisateur nagios et le groupe nagios :

1
2
#> groupadd nagios
#> useradd -g nagios nagios

7. Redémarrer le service xinetd pour la prise en compte de ce nouveau fichier :

1
#> service xinetd restart

8. Vérifier éventuellement que xinetd a bien pris en compte le fichier de configuration nsca en regardant les logs :

1
#> tail -n 30 /var/log/syslog

9. Télécharger les plugins nagios permettant d’effectuer les contrôles (types CPU, espace disque…) sur la machine et les compiler :

1
#> wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz -O nagios-plugins.tar.gz

10. Décompresser et désarchiver le répertoire :

1
#> tar xzf nagios-plugins.tar.gz

11. Se placer dans le répertoire et compiler :

1
2
3
#> cd nagios-plugins
#> ./configure
#> make all

12. Renommer le répertoire plugins (qui contient donc tous les plugins qui viennent d’être compilés) en libexec :

1
#> mv plugins libexec

13. Créer le répertoire /usr/local/nagios, tel que :

1
#> mkdir /usr/local/nagios

14. Déplacer le répertoire libexec dans le répertoire /usr/local/nagios :

1
#> mv libexec /usr/local/nagios

15. Vous pouvez désormais contrôler (entre autres) l’espace disque, la charge CPU ou le nombre d’utilisateurs connectés sur une machine Linux grâce à la commande check_nrpe et aux plugins « check_disk », « check_load » et « check_users ».

Configuration

Il existe 2 configurations :

Configuration sans NCONF

Nous créons le fichier lyon_server_unix_1.cfg dans le répertoire /etc/icinga/objects/ et définissons les commandes suivantes :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
define host {
	use generic-host host_name lyon_server_unix_1
	alias Lyon GNU/UNIX Serveur UNIX 1
	address	10.30.10.223
}
# 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
}

On modifie le fichier de command.cfg en y ajoutant :

1
2
3
4
define command{
       command_name check_nrpe
       command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
       }

Configuration avec NCONF

Nous déclarons directement la commande check_nrpe qui va permettre d’interroger les hôtes linux :

Icinga - Supervision des hôtes Linux via NRPE

Ensuite nous déclarons l’hôte Linux :

Icinga - Supervision des hôtes Linux via NRPE

Nous déclarons les services supervisés comme ici le CPU :

Icinga - Supervision des hôtes Linux via NRPE

Icinga - Supervision des hôtes Linux via NRPE

Voici un aperçu des services supervisés à l’aide de NRPE depuis l’interface Icinga-web :

Icinga - Supervision des hôtes Linux via NRPE

Vous aimerez aussi...

Laisser un commentaire

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

Time limit is exhausted. Please reload CAPTCHA.