Surveiller la mémoire de vos serveurs avec Nagios

Publié le 08 juillet 2008 par Nicolargo

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:

  • sous Linux: check_memory
  • ou sous FreeBSD: check_mem

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: