«

»

Nov 22 2012

[Tuto] Nagios: Superviser un hôte Linux avec NRPE

Bonjour à tous, dans ce nouveau tutoriel consacré à Nagios nous allons voir comment superviser une machine Linux via NRPE.

Qu’est-ce que NRPE?

NRPE pour Nagios Remote Plugin Executor est un plugin de Nagios qui permet d’executer des commandes de supervision sur des machines distantes.

Par exemple, dans le dossier /usr/local/nagios/libexec, vous avez plusieurs script de check comme check_load, check_disk, check_users etc.. qui ne fonctionnent que sur la machine locale. NRPE permet donc d’utiliser ces différers scripts pour superviser des machines distantes.

Préparation de la machine à superviser

Pour superviser nos serveur Linux il faut installer plugin NRPE necessaire

Sous une distribution à base debian (Debian ou Ubuntu Server) tapez la commande suivante:

apt-get install nagios-nrpe-server

Je vais maintenant vous expliquer comment se présente le fichier de configuration de NRPE.

Editez le fichier nrpe.cfg présent dans le dossier /etc/nagios/

nano /etc/nagios/nrpe.cfg

Commencez par trouver la ligne:

allowed_hosts=127.0.0.1

Et mettez à la place de 127.0.0.1 l’adresse IP de votre serveur nagios

Maintenant descendez plus bas dans ce fichier de configuration jusqu’aux lignes suivantes:

# The following examples use hardcoded command arguments...
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_zombie_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

Ce sont les commandes de check de NRPE, vous pouvez donc voir que NRPE utilise les scripts de check présents dans le dossier /usr/lib/nagios/plugins avec déja des options mis en place.

Biensur ces différents checks sont personnalisable et vous pouvez en rajoutez comme vous le souhaitez.

Nous allons avant de continuer, modifier la commande suivante:

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

Par celle-ci:

command[check_sda1]=/usr/lib/nagios/plugins/check_disk -u GB -w 20% -c 10% -p /dev/sda1

Cette commande va donc permettre de checker l’espace disque utilisé par la partition sda1 en Giga-Byte.

Enregistrez le fichier et relancez NRPE pour prendre en compte les changements:

service nagios-nrpe-server restart

Sur le serveur Nagios

Nous allons appeler le serveur Debian sur lequel nous venons d’installer le plugin NRPE : Asterisk (parce que c’est un serveur Asterisk ;) )

Et le serveur nagios nous allons l’appelé Nagios .

Donc maintenant que le serveur Asterisk est configuré pour être supervisé via NRPE nous allons voir si c’est fonctionnel en tapant la commande suivante:

/usr/local/nagios/libexec/check_nrpe -H ipDuServeurAsterisk

Vous devriez avoir en sortie la version de NRPE installée sur le serveur Asterisk:

NRPE v2.12

Maintenant nous pouvons tester notre premier check via NRPE, nous allons essayer ça avec la commande check_sda1 que nous avons modifié précédement sur le serveur Asterisk.

Toujours sur le serveur Nagios tapez la commande suivante:

/usr/local/nagios/libexec/check_nrpe -H ipDuServeurAsterisk -c check_sda1

Vous devriez avoir en sortie quelque chose de cette forme:

DISK OK - free space: / 17 GB (95% inode=97%);| /=0GB;14;16;0;18

Voila maintenant que cela fonctionne en ligne de commande il nous faut mettre ça en place dans nagios, nous allons commencer par créer la commande dans le fichier de configuration commands.cfg présent dans le dossier /usr/local/nagios/etc/objects/.

Dans ce fichier rajoutez les lignes suivantes:

##Commande check_nrpe
define command{

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

Maintenant nous allons rajouter les services à superviser dans le fichier contenant les services Linux.

Nous allons donc éditer le fichier linux_services.cfg se trouvant dans le dossier /usr/local/nagios/etc/objects/linux_servers que nous avons crée dans le tuto précédent:

Voici donc le fichier avec les nouveaux services que nous allons superviser:

#### LINUX SERVICES DEFINITIONS ####

##Check PING
define service{
        use                             local-service
        host_name                       nagios, portable, asterisk
        service_description             PING
    	check_command           	check_ping!100.0,20%!500.0,60%
        }

##Check NRPE sda1
define service{
        use                             local-service
        host_name                       nagios, portable, asterisk
        service_description             Sda1
    	check_command           	check_nrpe!check_sda1
        }

##Check NRPE users
define service{
        use                             local-service
        host_name                       nagios, portable, asterisk
        service_description             Users
    	check_command           	check_nrpe!check_users
        }

##Check NRPE load
define service{
        use                             local-service
        host_name                       nagios, portable, asterisk
        service_description             Load
    	check_command           	check_nrpe!check_load
        }

##Check NRPE total procs
define service{
        use                             local-service
        host_name                       nagios, portable, asterisk
        service_description             Total Procs
    	check_command           	check_nrpe!check_total_procs
        }

Maintenant vous pouvez redémarrez nagios via la commande service nagios restart

Comme nous allons aussi superviser le serveur Nagios avec NRPE il faut comme sur le serveur Asterisk modifier le fichier nrpe.cfg (sur le serveur Nagios celui-ci se trouve dans le dossier /usr/local/nagios/etc/)

Et enfin redémarrez aussi le service NRPE du serveur Nagios avec la commande service xinetd restart

Maintenant rendez-vous sur l’interface web de Nagios et si vous avez bien installé et configuré NRPE sur toutes vos machines vous devriez avoir quleque chose qui ressembe à ceci:

Les machines avec les nouveaux services

Les machines avec les nouveaux services


Voila, vous savez maintenant comment superviser des machines Linux avec NRPE, nous allons voir dans un prochain article quelles sont les différents services intéressants à superiser en fonction de vos serveurs.

(5 commentaires)

Passer au formulaire de commentaire

  1. Astro

    Bonjour, lorsque je fais http://monip/nagios/ je me connecte avec mes identifiants et là je tombe sur une page « Nagios Core » et en dessous  » Not running »
    Quand je clique sur un des liens dans le menu à gauche, il me dirige vers une page avec pleins de caractères illisibles et tous les liens sont des http://monip/nagios/cgi-bin/xxx.
    Je ne comprends pas ce que j’ai mal configuré, je suis sous Debian 8.0, Nagios 4.0.8 et les plugins en 1.5

    Merci et je suis dispo si il vous faut des infos en plus !

  2. @mzo

    slt mec
    Avant tout permettez moi de vous remercier pour tous ses tutos c’est vraiment trop cool grace à vous je reussi à mettre nagios en place et il marche très bien sauf sur ce tuto d’ajout des machines linux j’ai un petit souci en fait je suivi le tuto mais arriver la: /usr/local/nagios/libexec/check_nrpe -H @ip de_mon_sevrer. je reçois ce message connexion refused by host. Si vous pouvez me donner un petit coup de main j’en ai vraiment besoin car j’ai un projet à déposer avant le 10 février et ce tout ce qui me bloque. pour les machines windows tout est ok .
    merci d’avance

    1. Denis

      Hello,

      Je dirais que c’est une problème de pare feu, si le pare feu est activé fait en sorte que le port 5666 soit ouvert et que NRPE écoute bien sur ce port la sur ton serveur Liinux.

      Denis

  3. polo

    Bonjour,

    tuto super bien fait, cependant j’ai un petit souci, en effet depuis mon serveur Fan lorsque je lance une requête vers mon client (debian) soit: ./ check_nrpe -H 10.1.1.9 -c sda1

    j’ai le retour suivant:

    connection refused by host, alors que sur mon host je définit bien allowed-hosts=10.1.1.9

    quelqu’un aurai une idée?

  4. sara

    Bonjour :)

    s’il vous plait , comment je peux superviser les services installés sur ma machine localhost( ftp , dsn,ssh…) sachant que chaque services est active sur une sous interface avec une adresse IP??

    merci d’avance

Laisser un commentaire

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

Lire les articles précédents :
smalllogo7nagios
[Tuto] Nagios: Introduction au fichiers de configurations de Nagios

Bonjour à tous, Dans ce tuto je vais vous expliquer comment la supervision d'un hôte sous Nagios se fait. Pour...

Fermer