Notifications Nagios par SMS

Publié le 27 novembre 2008 par Nicolargo

Ce billet fait suite à une demande pressente de plusieurs lecteurs de ce blog qui ont en commun le besoin d’envoyer des notifications Nagios par SMS afin que leurs administrateurs/utilisateurs puissent les recevoir sur un simple téléphone portable.

Avant de commencer…

… ce qui Nagios ne sait pas faire: envoyer des SMS !!!

Et oui, il n’y a pas de miracle, Nagios ne sait pas envoyer directement de SMS (il n’est pas fait pour cela…). Il va falloir donc passer par un serveur offrant les fonctions suivantes:

  • recevoir les notifications venant de Nagios (par mail, http ou autre…)
  • transformer ce message en SMS
  • envoyer le SMS sur le réseau téléphonique GSM

Pas la peine de chercher bien loin, une requête du type serveur SMS dans gOOgle devrait vous mettre sur la bonne voie. Dans l’exemple si dessous, j’ai choisi l’opérateur 123-SMS qui propose un service sans abonnement (on crédite son compte en fonction de ses besoins) et avec des interfaces diverses et variées (Mail, HTTP, Socket, Curl…).

Il faut dans un premier temps créer un compte et le créditer

Je vous conseille de créer le compte en question en donnant l’adresse mail de l’utilisateur Unix qui lance Nagios (par exemple nagios@votredomaine.com).

Configuration de Nagios

Il faut créer une nouvelle commande de notification dans le fichier de configuration …:

define command{

command_name notify-service-by-sms

command_line /usr/bin/printf “%b” “** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **” | /usr/bin/mail -s “MOTDEPASSE:$CONTACTPAGER$” sms@123-sms.net

}

define command{

command_name notify-host-by-sms

command_line /usr/bin/printf “%b” “Host $HOSTSTATE$ alert for $HOSTNAME$!” | /usr/bin/mail -s “MOTDEPASSE:$CONTACTPAGER$” sms@123-sms.net

}

avec:

  • MOTDEPASSE est le mot de passe fournie par votre opérateur de SMS
  • CONTACTPAGER sera automatiquement remplacer par Nagios par le numéro de téléphone portable (PAGER) du contact à prévenir
  • sms@123-sms.net est l’adresse mail du serveur de votre opérateur SMS (le serveur qui va envoyer le SMS sur le réseau GSM)

Il ne reste plus qu’a ajouter cette notification aux administrateurs/utilisateurs (par exemple le pauvre gars nommé James qui a comme numéro de téléphone 06007007) que l’on souhaite prévenir:

define contact{

contact_name monadminquivapasdormirdelanuit

alias James

service_notification_period 24×7

host_notification_period 24×7

service_notification_options w,u,c,r

host_notification_options d,u,r

service_notification_commands notify-service-by-sms

host_notification_commands notify-host-by-sms

pager 336007007

}

Et voilà, il ne reste plus qu’a relancer Nagios et attendre les premiers SMS…