Magazine Internet

Notification Twitter (oAuth) dans Nagios

Publié le 23 novembre 2010 par Nicolargo

Twitter est un service devenu indispensable pour la veille technologique des geeks que nous sommes. Son "ouverture via des API permet également de l'utiliser comme un moyen simple de diffusion d'informations de type alerte.

Nous allons dans ce billet voir comment configurer Nagios (l'outil de supervision open-source) pour envoyer des alertes sur un compte Twitter dédié. La méthode détaillé est compatible avec la nouvelle méthode d'authentification de Twitter nommée oAuth.

Avant de commencer

Pour ne pas poluer votre time-line pricipale, je vous conseille de créer un compte Twitter dédié à ce besoin. C'est sur ce dernier que les alertes seront envoyées. Il suffira ensuite aux "administateurs" de suivre ce compte Twitter pour être informé au plus vite des anomalies survenues sur le réseau.

Pour créer notre compte Twitter special Nagios, on va à l'adresse suivante:

Notification Twitter (oAuth) dans Nagios

Il faut bien retenir votre "username" (nagiosnicolargo dans mon cas) et "password".

Il faut ensuite se rendre dans les "Settings" et cliquer sur le bouton "Protect my updates" pour forcer l'approbation des utilisateurs qui vont pouvoir suivre ce compte Twitter. Quand un des administrateurs fera une demande pour suivre ce compte Twitter, il faudra l'approuver. Cela évite que n'importe qui voit que votre réseau est tombé :) ...

Notification Twitter (oAuth) dans Nagios

Installation du script de mise à jour de Twitter

Depuis que l'authentification sur Twitter, la procédure est un peu plus compliquée. J'ai donc écrit un billet spécifique sur le sujet. Il suffit de suivre cette procédure en prenant comme compte Twitter le compte préalablement créé dans le chapitre précédant pour y associer une nouvelle application (le script Python nommé tweetitcli.py) qui va permettre à Nagios de mettre à jour la timeline.

Après cette étape, vous devez donc être capable de mettre à jour la timeline de votre compte Twitter dédié avec une ligne de commande du type:

./tweetitcli.py 'Petit test depuis la ligne de commande Linux'

Je vous laisse vérifier que cela marche...

Il faut ensuite copier le script en question dans le répertoire des plugins de Nagios:

cp ./tweetitcli.py /usr/local/nagios/libexec/

sudo chown nagios:nagios /usr/local/nagios/libexec/tweetitcli.py

Configuration du serveur Nagios

Passons maintenant aux fichiers de configuration de Nagios. Je pars sur le principe que vous avez un serveur Nagios en état de marche. On commence par ajouter la commande tweetitcli.py qui va permettre d'envoyer un message à notre compte Twitter via Curl:

# vi /usr/local/nagios/etc/objects/commands.cfg

define command{
command_name   notify-host-by-twitter
command_line    $USER1$/tweetitcli.py "$HOSTNAME$ is $HOSTSTATE$"
}
define command{
command_name   notify-service-by-twitter
command_line    $USER1$/tweetitcli.py "$SERVICEDESC$@$HOSTNAME$ is $SERVICESTATE$ ** $SERVICEOUTPUT$"
}

Ensuite on défini le contact (ou le groupe à vous de voir):

# vi /usr/local/nagios/etc/objects/templates.cfg

define contact{
name  nicolargoadmin 
alias Admin Nicolargo
service_notification_period   24x7  
host_notification_period   24x7  
service_notification_options   w,u,c,r,f,s  
host_notification_options   d,u,r,f,s  
service_notification_commands   notify-service-by-twitter
host_notification_commands   notify-host-by-twitter
}

Puis enfin on associe le contact avec le service à surveiller (par exemple que mon serveur Web tourne bien...):

define host{
use   linux-host
host_name   gandiserveur
alias   Serveur Gandi
address   blog.nicolargo.com
parents   monrouteur
hostgroups   prj-perso
contacts   nicolargoadmin
}
define service{
use   generic-service
host_name   gandiserveur
service_description   HTTP
check_command   check_http
contacts   nicolargoadmin
}

On teste...

Il ne reste plus qu'a tester vos fichiers de configuration:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

et à relancer Nagios:

sudo service nagios restart

A chaque notification, un nouveau message devrait apparaître dans votre compte Twitter dédié ;)


Retour à La Une de Logo Paperblog

A propos de l’auteur


Nicolargo 417 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog

Magazine