Supervision de vos serveurs FreeBSD avec Nagios et NRPE

Publié le 04 juillet 2008 par Nicolargo

En complément du billet sur la supervision des serveurs Linux, voici une simple procédure pour mettre en place le monitoring de serveurs sous FreeBSD (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/Debien:

# 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 FreeBSD à surveiller...

La procédure est un peu plus longue. Il faut d’abord installer le daemon NRPE (qui installera pas mal de dépendances dont les plugins Nagios qui vont être lancés localement par le daemon NRPE):

cd /usr/ports/net-mgmt/nrpe2
make install distclean

Nous allons créer le fichier de configuration à partir du fichier par défaut:

cp /usr/local/etc/nrpe.cfg-sample /usr/local/etc/nrpe.cfg

Puis éditer le fichier/usr/local/etc/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 BSD en ajoutant les lignes suivante dans le fichier /etc/rc.conf:


# NRPE
nrpe2_enable=”YES”

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

# ipfw add 1 allow tcp from adresse_ip__serveur_nagios to me  5666 setup keep-state

Il ne reste plus qu’à lancer le daemon:

#  /usr/local/etc/rc.d/nrpe2 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_Bsd
NRPE v2.11

Si tout est OK, cette commande devrait renvoyer la version du daemon NRPE.

On configure Nagios…

La dernière étape consiste à modifier les fichiers de configuration de Nagios pour intégrer le monitoring du/des serveur BSD. Il faut dans un premier temps éditer votre fichier de configuration des hosts (hosts.cfg par défaut) et y ajouter votre machine BSD:

define host {
use generic-host
host_name richard
alias Ma machine BSD
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 richard
service_description CPU Load
check_command check_nrpe!check_load
}

# Memoire
define service{
use generic-service
host_name richard
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.conf 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.conf):

# service nrpe restart

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