Nagios Event Handlers

Souvent méconnue, cette API intégrée à nagios est pourtant très utile.  Je l’ai conseillée sur différents blogs, en commentaire, et je me suis dis pourquoi ne pas partager mon expérience via ce billet.  Son fonctionnement est assez simple, l’event handler de Nagios se déclenche lorsqu’un service change d’état. Quand le statut passe de OK à warning, de Ok à critique ou de OK à Unknown. Je m’en sers pour déclencher des alertes vocales via une API proprio, sur certains services sensibles quand ces derniers deviennent critiques pour Nagios. Voilà comment je procède.

Un bloc du fichier service.cfg :

define service {
use                       Service-Com
host_name                 ServeurWindowsCom
service_description       Services Communication Bancaire
display_name              Services Communication Bancaire
check_command             check_nt!PROCSTATE!-l xxx_service.ex,xxxoni.exe,XxxxServ.exe,xxMon.exe
event_handler             SENDALERTE
contact_groups            INFO EXPLOIT
}

Voici le bloc qui définie la commande SENDALERTE dans le fichier commands.cfg :

define command {
command_name              SENDALERTE
command_line              /usr/bin/SENDALERTE $HOSTNAME$ $SERVICESTATE$ ASTEINTE *APPEL_IMMEDIAT 80 '$SERVICEDESC$'
}

Et enfin le shell SENDALERTE appelé :

#!/bin/sh
# On ne prend des décisions que lorsqu'on est sûr (on ne veut pas être appelé à 1h00 du matin pour rien),
# donc on déclenche seulement en état critique
 
case "$2" in
 
         WARNING)
         exit 0
         ;;
 
         OK)
         exit 0
         ;;
 
         UNKNOWN)
         exit 0
         ;;
 
         CRITICAL)
         /usr/bin/API_vocale_proprio "$1 : Le $6 est critique." -shost ASTREINTE -a $3 -c $4 -s $5
         ;;
 
         *)
         exit 0
         ;;
 
esac
 
exit 0

De la même manière, on pourrait automatiser pour une alerte précise, une action précise, comme redémarrer un daemon, lancer une sauvegarde, faire chauffer le café… On pourrait également se baser sur le tutorial de nicolargo pour lancer un sms via un service Web prévu à cet effet… En espérant que cela puisse servir.

Pour aller plus loin avec Nagios :

http://exchange.nagios.org/

ou l’excellent :

http://www.nagios-portal.org/wbb/index.php

Vus : 3371
Publié par Feilong : 12