Notifications Nagios par SMS
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 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...







Twitter:
Rss:
Commentaires (de mes chers lecteurs):
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.
slt jinstalle nagios sur une machine virtuelle ubuntu jespére k sa créera pa de probléme
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 ?
excellent, moi qui cherchait ça depuis des lustres! Merci pour l’astuce
@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
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.
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!!!!