Accueil > Système > Alertes par SMS en Bash (via Google Calendar)

Alertes par SMS en Bash (via Google Calendar)

12/02/2013 Categories: Système Tags: , , , ,

La remontée d’alerte par SMS (“Short Message Service”) est un plus non négligeable dans le monitoring de systèmes d’informations critiques.

Les services gratuits permettant d’utiliser les SMS depuis le système restent rare.

Depuis plusieurs années déjà, “Google Agenda” propose à ses clients des rappels de rendez-vous par SMS.
Rapidement, ce service Google fût détourné pour être utilisé comme source de remontée d’alertes (exemple : “SmsAlert : Envoyer des SMS gratuitement depuis ses serveurs” sur le site Macsim’s Mind qui utilisait le script PHP d’ Alexander Skakunov pour remonter des alertes par SMS).

Bien que très efficaces, la plupart de ces détournement sont implémentés en PHP qui n’est pas installé sur tous les serveurs.

L’idée de cet article et d’utiliser la même technique mais implémentée en BASH.

Principe de fonctionnement

Le principe est de créer un événement dans un agenda Google Calendar débutant dans 5 minutes et X secondes et d’avertir l’administrateur par SMS 5 minutes avant le début de l’événement. Le SMS sera donc envoyé après X secondes.

L’objectif du script “googalert” (disponible sur sourceforge) est de n’utiliser que des commandes classiques du shell, de pouvoir choisir l’agenda dans lesquels seront stockés les alertes et d’être parfaitement conforme à l’API Google(http://www.udel.edu/CIS/software/dist/google/calendar/java.client/gdata/doc/calendar.htmlvoir Add an event).

Mise en place

Préparer Google Calendar

Puisque le script ajoute des événements dans un agenda Google, il faut disposer d’un compte “Google Calendar”. Si vous n’avez pas de comptes de ce type, rendez vous sur la page d’accès au service d’agenda (http://www.google.com/calendar) et inscrivez vous (bouton “INSCRIPTION” en haut à droite).

Une fois connecté, à l’agenda, créer un nouvel agenda :

20121210154450

Lui donner un nom et (pourquoi pas) une description avant de valider par “Créer l’agenda” :

20121210154725

Puisqu’il s’agit de recevoir des notifications par SMS, la notion de numéro de téléphone semble inévitable … Si vous n’avez pas encore fourni cette information à Google, vous pourrez y accéder via le menu “Rappels et notifications” du nouvel agenda :

20121210155647

En bas de page vous trouverez un joli lien vous permettant de fournir le précieux renseignement :

20121210160254

Enfin, activer la notification par SMS des événements pour terminer la configuration :

20121210165213

Récupérer les informations Google Calendar

Si vous ne souhaitez pas utiliser l’agenda par défaut pour consigner les alertes, récupérez l’ID de l’agenda ciblé dans les “Paramètres de l’agenda” :

20121210163932

Dans la section “Adresse URL de l’agenda” copier la valeur de l’ID (ici ef00qo0reirlsncva3qo7vgb10@group.calendar.google.com) :

20121210165033

Mise en place du script “googalert”

Télécharger le script “googalert” sur sourceforge (http://sourceforge.net/projects/googalert/) et l’extraire :

fhh@mafalda ~ $ mkdir alertbysms && cd !$
mkdir alertbysms && cd alertbysms
fhh@mafalda ~/alertbysms $ wget -q http://downloads.sourceforge.net/project/googalert/googalert-0.1.tar.bz2
fhh@mafalda ~/alertbysms $ tar xvf googalert-0.1.tar.bz2 
googalert-0.1/
googalert-0.1/googalert
fhh@mafalda ~/alertbysms $ cd googalert-0.1

Sans arguments, le script retourne un menu d’aide.

CRÉER UN FICHIER DE CONFIGURATION

L’option “-g” génère un typon de fichier de configuration.

fhh@mafalda ~/alertbysms/googalert-0.1 $ ./googalert -g > googalert.conf

Éditez le fichier généré pour y renseigner vos identifiants, l’ID de l’agenda dans lequel vous souhaitez ajouter vos modifications, etc :

fhh@mafalda ~/alertbysms/googalert-0.1 $ grep '^[[:blank:]]*[[:alpha:]]' googalert.conf
AGENDA="ef00qo0reirlsncva3qo7vgb10@group.calendar.google.com" ;
LOGIN="fhh@gmail.com" ;
PASSWORD="mot_de_passe_gmail" ;

Une fois le fichier de configuration renseigné, vous pouvez soit le déplacer à la racine de votre compte en le faisant précéder par un “.” (exemple : mv googalert.conf ~/.googalert.conf) soit le placer dans “/etc/googalert.conf” si vous êtes administrateur de la machine, soit utiliser l’option “-c” du script.

Quelque soit votre choix pensez à adapter les droits sur le fichier !!!

fhh@mafalda ~/alertbysms/googalert-0.1 $ chmod 600 googalert.conf

Note : Vous pouvez préciser les logins mots de passe et agenda à utiliser directement depuis la ligne de commande via les options “-l”, “-p” et “-a”.

UTILISATION DU SCRIPT

A minima, vous devez préciser au script un texte pour l’événement à ajouter dans votre agenda, mais le champ le plus intéressant est le titre de l’événement car il sera repris dans le SMS d’alerte que vous recevrez :

fhh@mafalda ~/alertbysms/googalert-0.1 $ ./googalert -c googalert.conf "Titre de l'évènement" "Texte de l'alerte consignée dans l'agenda..."
fhh@mafalda ~/alertbysms/googalert-0.1 $ echo $?
0

Note : l’option “-v” détaille les différentes actions effectuées par le script.

L’événement est alors ajouté à l’agenda désiré :

20121217122834

 

et dans les 30 secondes suivant l’insertion, vous recevrez une notification par SMS :

sms de : 36665"
date="1355743717554"
type="1"
body="Rappel : Titre de l'évènement - lun. 17 déc. 12:33 - 12:43
lieu?: mafalda (Alertes)"

Par défaut, le script retourne une alerte dans les 30 secondes suivant l’ajout de l’événement à l’agenda. Cette valeur peut être modifiée via l’option “-t”.

Limites du script

Le script utilisant un service web gratuit, sa fiabilité est liée à différents facteurs tels que :

  • la synchronisation du temps : la machine émettant les alertes doit être parfaitement à l’heure sous peine d’ajouter des événements dans le passé ou trop loin dans le futur (ce qui n’a plus d’intérêt) ;
  • l’accès au web : la remontée d’alertes passe par l’accès à une application web. Si l’accès internet de la machine est coupé, il devient impossible d’accéder au service Google calendar et les notifications tombent dans le néant …
  • la fiabilité de Google Calendar : Google Calendar est un service gratuit dont la fiabilité n’est pas absolue…

Malgré tout, le script fournis un sympathique complément aux systèmes traditionnels de remontées d’alertes

Print Friendly, PDF & Email

Related Post

Categories: Système Tags: , , , ,
Les commentaires sont fermés.