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





Open-source

Abonnez-vous
5 commentaires au billet “Notifications Nagios par 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.
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 ?
[...] service, 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 [...]
excellent, moi qui cherchait ça depuis des lustres! Merci pour l'astuce
Publier un commentaire
Utiliser
pour lier des documents à vos commentaires.
Pour des discutions techniques, merci d'utiliser le forum.