Surveiller vos serveurs Linux avec Nagios et NRPE

Date: 17/10/2007 | Catégories: Open-source,Reseau | Tags: ,,

Suite à l'introduction sur les greffons Nagios, voici une simple procédure pour mettre en place le monitoring de serveurs sous Linux (voir ce billet pour des serveurs BSD ou Mac OS X) à partir de Nagios en utilisant le plugin NRPE.

Sur votre serveur Nagios...

... il faut installer le plugin NRPE. Pour cela, le plus simple est de faire confiance à votre gestionnaire de paquets.

Sous Fedora, la commande suivante devrait suffire:

# sudo yum install nagios-plugins-nrpe

Sous Ubuntu/Debian:

# sudo apt-get install nagios-nrpe-plugin

Il faut également vérifier que la définition du plugin est bien présente dans le fichier de configuration des commandes (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...

La procédure est un peu plus longue. Il faut d'abord installer le daemon NRPE et les plugins Nagios (qui vont être lancés localement par le daemon NRPE):

Sous Fedora:

# sudo yum install nrpe
# sudo yum install nagios-plugins-all

Sous Ubuntu/Debien:

# sudo apt-get install nagios-nrpe-server
# sudo apt-get install nagios-plugins

Puis éditer le fichier /etc/nagios/nrpe.cfg pour modifier la ligne suivante:

...
allowed_hosts = Mettre ici l'adresse IP de votre serveur Nagios
...

On automatise le lancement du daemon au démarrage du serveur avec la commande:

# chkconfig --add nrpe

On ajoute une règle pour autoriser le Firewall IPtable à laisser passer les requêtes NRPE (à adapter selon vos règles):

# iptables -I RH-Firewall-1-INPUT 10 -p tcp --dport 5666 -j ACCEPT
Attention il faut mettre deux - (- -) avant l'option dport

Il ne reste plus qu'à lancer le daemon:

Sous Fedora:

# service nrpe start

Sous Ubuntu/Debien:

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

On teste la communication...

Pour tester que la communication entre le serveur Nagios et le serveur à surveiller se passe bien, il suffit de se rendre dans le répertoire des plugins (/usr/lib/nagios/plugins) de Nagios et de tester le plugin NRPE:

# ./check_nrpe -H Adresse_IP_du_serveur_Linux
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

On configure Nagios...

La dernière étape consiste à modifier les fichiers de configuration de Nagios pour intégrer le monitoring du/des serveur Linux. 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:

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

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

# service nrpe restart

Il est bien entendu possible d'écrire son propre plugin Nagios et de le faire exécuter par NRPE.