Surveiller la mémoire de vos serveurs avec Nagios

Date: 8/07/2008 | Catégories: Open-source,Reseau,Systeme | Tags: ,,,,,,

Voici un petit billet de plus sur Nagios. Nous aborderons le sujet de la supervision à distance de la mémoire vive (RAM) de nos serveurs.

Nous allons pour cela utiliser deux plugins, le premier est NRPE (il permet de lancer des commandes à distance sur d'autres machines), le second est un script permettant d'obtenir un état de la mémoire vive à un instant "t".

Nous utiliserons donc le schéma suivant:

Installation de NRPE

Ce premier plugin doit être installé sur le serveur Nagios et sur toutes les machines à superviser.

Pour une procédure d'installation sous GNU/Linux, lire ce billet. Si vous voulez surveiller des machines FreeBSD, lire celui là.

A ce stade vous devez donc avoir un plugin NRPE opérationnel entre votre serveur Nagios et les machines à surveiller.

Installation du plugin de supervision de la mémoire

Il existe un grand nombre de méthodes pour obtenir la mémoire libre sur une machine. Personnellement j'utilise les deux scripts suivants selon que je sois:

Mais, si le coeur vous en dit, vous pouvez écrire vous-même le plugin le plus adapté à votre système (Windows, Unix divers et varié...).

Une fois connecté sur votre machine à superviser, il faut mettre le plugin dans le répertoire /usr/local/libexec/nagios/ et lui donner les droits en lecture et exécution:

cp ./check_memory.pl /usr/local/libexec/nagios/
chmod 555 /usr/local/libexec/nagios/check_memory.pl

Vous pouvez tester localement le plugin grâce la commande suivante:

/usr/local/libexec/nagios/check_memory.pl -f -w 90 -c 50
Memory WARNING - 87.5% (1879588864 kB) free |pct=87.5

Configuration de NRPE pour prendre en compte le script check_memory

Toujours sur la machine cible, il faut éditer le fichier de configuration de NRPE pour y ajouter la définition du plugin check_memory:

vi /usr/local/etc/nrpe.cfg

...
command[check_mem]=/usr/local/libexec/nagios/check_memory.pl -f -w 30 -c 15
...

Dans la configuration ci-dessus, on demande à check_memory de déclencher une alerte (warning) si la mémoire passe en dessous des 30% et une erreur (critical) si elle descend en dessous des 15%. Avous d'adpater ces valeurs selon vos besoins.

Pour que NRPE prenne en compte la nouvelle configuration il faut relancer le daemon:

Sous Linux:

service nrpe2 restart

ou

/etc/init.d/nrpe2 restart

Sous FreeBSD:

/usr/local/etc/rc.d/nrpe2 restart

Configuration du serveur Nagios

Il ne reste plus qu'à modifier la configuration du serveur Nagios pour ajouter le service à superviser, voici un exemple:

# Mon serveur
define host{
use        generic-host
host_name    monserveur
alias        Mon beau serveur
address        192.168.0.200
}
define service{
use                     generic-service
host_name               monserveur
service_description     Memoire vive
check_command           check_nrpe!check_mem
}

Et voila le résultat: