Envoyer des SMS depuis Nagios en utilisant l’API SMS d’Orange

Mise à jour 21 avril 2010 : Les Instant API deviennent les API d’Orange et déménagent vers un nouveau site. J’ai modifié l’article en conséquence. Heureusement, les APIs n’ont pas changé d’adresse, donc le code source reste inchangé.

Ce tutoriel explique comment configurer Nagios pour utiliser l’API d’envoi de SMS d’Orange. En pré-requis, je suppose que Nagios est déjà installé et que vous connaissez le fonctionnement des fichiers de configuration de Nagios (je ne détaille pas les chemins vers les fichiers de configuration car ils dépendent de votre distribution et de votre personnalisation).

Etape 1 : création d’un compte Orange Partner et récupération de votre « API key »

Tout est expliqué sur le site des API d’Orange à cette adresse. Notez bien votre « API key » qu’il faudra renseigner dans le script Python fourni à l’étape 2.

Etape 2 : installation du script d’envoi de SMS

La documentation Orange inclut un exemple d’envoi de SMS en PHP. Francois Marx a écrit un article très complet sur Developpez.com, avec des exemples en PHP, Python, Java et VBscript. Je me suis inspiré des quelques lignes en Python pour écrire un script d’envoi de SMS baptisé simplement sms.py.

Téléchargez sms.py sur votre serveur Nagios. Personnalisez le script avec votre API key (ligne 16), puis rendez le exécutable (chmod +x).

A ce stade, testez le script depuis la ligne de commande en tapant :

Cela va envoyer « Hello World » au mobile n° 33610203040 (33 est l’indicatif pour la France, 610203040 est le numéro de mobile sans le 0 initial). Une réponse « 200 » signifie que le SMS a bien été envoyé. Pour la signification des autres codes d’erreurs, consultez la documentation de l’API Orange sur leur site.

Etape 3 : vérification du numéro de téléphone associé au contact recevant les notifications

Vérifiez que vos définitions de contacts dans Nagios contiennent bien un champ pager avec un numéro de téléphone au format international (sans le signe « + », sans espace ni tiret). Rajoutez les commandes de notification notify-service-by-sms et notify-host-by-sms comme dans l’exemple ci-dessous.

Etape 4 : ajout des commandes d’envoi de SMS

Editez votre configuration Nagios pour rajouter les commandes suivantes (pensez à personnaliser le chemin d’installation de sms.py) :

Etape 5 :testez !

Rechargez la configuration de Nagios (sudo /etc/init.d/nagios3 reload). Arrêtez un des services que vous supervisez avec Nagios et surveillez votre téléphone portable. Si vous recevez l’email de notification, mais pas le SMS, vérifiez les étapes 3 et 4.

Attention : lors de la création du compte Orange Partner, vous avez 200 crédits d’offerts (ce qui correspond à l’envoi de 20 SMS). Pensez à alimenter votre compte régulièrement si vos services tombent en panne 😉

Bonne supervision !