Notifications Nagios par SMS

Date: 27/11/2008 | Catégories: Open-source,Reseau,Systeme | Tags: ,,

url.jpgCe 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 24x7

host_notification_period 24x7

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...

  • Encore un billet très intéressant sur ce blog.

    Pour ma part j’utilise l’ option « event Handler » de nagios afin d’envoyer des alertes vocales (par un logiciel proprio… oups…).

    J’ajoute à cela un « case » sur l ‘état changé si OK, Warning ou Unknow je lance aucun appel, si CRITICAL je l’ance l’appel immédiatement.

    Le fait de passer par l’event handler à mon avis éviterait l’ envoi de sms massifs pour la même alerte non résolu….

    A vérifier.

  • tatou

    slt jinstalle nagios sur une machine virtuelle ubuntu jespére k sa créera pa de probléme

  • SUIKOX

    est-ce que dans cette solution il faut installer gnokii ou smstools ou il faut simplement rajouter à la fin de la commande sms@123-sms.net ?

    c’est parce que je vois pas comment il va comprendre qu’il faut envoyer le sms à 123-sms.net ?

  • Pingback: Feilong 's Works » Nagios Event Handlers()

  • excellent, moi qui cherchait ça depuis des lustres! Merci pour l’astuce

  • Polar

    @SUIKOX Oui en fait 123sms se base sur l’adresse mail avec laquelle il réceptionne le mail et le mot de passe donné en argument.
    Si un compte existe avec ces identifiants, il peut alors s’y connecter et transférer le mail en SMS.

  • Excellent tuto Nico, comme à ton habitude…

    Le seul désavantage de cette technique et que si le service mail, postfix par exemple, ou le serveur même tombent; vous n’êtes ni prévenu par sms ni par mail !

    Hors que si vous installez un système comme le client TeamTILT for nagios, vous pourrez toujours être prévenu car un système de « heartbeat » est configuré entre le client et la plateforme TeamTILT distante !

    Autres avantages :

    * Plusieurs médias possible : SMS, voice call, push notifcation iphone et email. Les deux derniers sont gratuit !
    * Libre de licence, vous ne payez que les SMS et les voice call !
    * Vous pouvez répondre aux alertes via SMS ou voice call et voir en temps réels les réponses sous l’interface web de TeamTILT
    * …

    Vous pouvez le télécharger ou obtenir plus d’information à cette adresse : http://www.alarmtilt.com/fr/gerez-vos-alertes-nagios-avec-teamtilt.html

    Renaud !

  • Bonjour,

    Merci beaucoup pour ce billet, j’ai juste une remarque à propos du mail ou la requête http qu’on envoie au serveur 123-sms.net, es ce qu’il n’y a pas un manque de sécurité puisque le mot de passe est transmet en claire?

    Merci

  • Swed

    Bonjour à tous,

    Merci Nico pour ce tuto encore une fois très utile. Simplement j’aimerai avoir ton avis sur une question.
    Je souhaiterai mettre en place une notification par mail durant les heures travaillées et ensuite une notification par sms sur certain service.
    Est ce possible ?
    Si oui comment faire s’il te plait ? Car j’ai beau cherché je ne vois pas comment le déclarer dans le timeperiods.cfg.

    Merci d’avance pour ta réponse.

  • pisix

    au siveau de l’enregistrement dans 123-sms.com vous nous conseillez de mettre une adresse du genre nagios@notredomain.com.
    est ce que cela marchera si notre domaine n’est pas valide sur internet c’est à dire qui est utilisé en local
    merci

  • salu nico plz j’ai nstaller nagios à l’aide de FAN mais je ne recois pas les notification par mail sur mon serveur exchange at même pas das /var/log/maillog; s t p aider moi!!!!

  • Si tu veux nico, j’ai fait un article sur l’envoie de SMS avec un mobile pluggé sur le serveur :
    http://alexnogard.com/notifications-sms-pour-nagios-centreon/

    Comme ça, si un service style postfix ou encore les FW tombent sous un DDOS donc plus d’accès au net, nous avons les infos en direct 🙂

  • badr

    Bonjour,
    je reçois pas les sms sur mon portable,par contre j’ai fait le tuto à la lettre.
    Cdt,

  • Merci pour l’astuce. Je recherchais un code de ce type, je vais pouvoir l’adapter!

  • charly

    salut! j’ai créé mon utilisateur et mes deux commandes sur Centreon, après avoir redémarrer nagios depuis centreon, je vois bien mes deux commandes dans /usr/local/nagios/etc/misccommands.cfg et mon user dans /usr/local/nagios/etc/contacts.cfg mais malheureusement cela ne marche pas. J’ai bien créditer mon compte sur 123sms et appliquer cet utilisateur a une alerte récurrente. auriez vous des pistes?

  • Une plateforme qui permet de mettre en place des notification par SMS: CLEVERSMS
    http://communication.clever.fr/sms-notification-envoyer-recevoir-notification-par-sms/