También puedes twittear tus notificaciones de monitorización de Icinga2 a través de un script personalizado escrito en Python con la ayuda del programa Python "tweepy".
1. Instalar el programa de pitón "tweepy"
Necesitas tener instalado un entorno de pitón y un gestor de paquetes de pitón "pip".
pip install tweepy
2. Autorización para su cuenta de Twitter
Vaya a la página http://twitter.com/oauth_clients
Por favor, entra en tu cuenta de Twitter, que quieres usar para tus notificaciones de monitoreo de Icinga2. Entonces, por favor crea una nueva aplicación.
Añade la "API Consumer Key" y "API Consumer Secret" (en la pestaña "Keys and tokens" -> "Consumer API keys") de tu nueva aplicación creada en el siguiente script de Python:
#!/usr/bin/env python
import tweepy
#*** Edita estas dos líneas ***
API_CONSUMER_KEY = 'ADD YOUR CONSUMER KEY HERE'
API_CONSUMER_SECRET = 'ADD YOUR CONSUMER SECRET HERE'
#*** Edita estas dos líneas ***
auth = tweepy.OAuthHandler(API_CONSUMER_KEY, API_CONSUMER_SECRET)
auth_url = auth.get_authorization_url()
print 'Please authorize: ' + auth_url
verifier = raw_input('PIN: ').strip()
auth.get_access_token(verifier)
print "API CONSUMER KEY = '%s'" % auth.access_token.key
print "API CONSUMER SECRET = '%s'" % auth.access_token.secret
Crea este script en Python, inserta tus claves de API y ejecuta este script para autorizar tu aplicación de Twitter para tu servidor.
chmod 755 /tmp/authorize_twitter_app
./authorize_twitter_app
Sigue el resultado de tu nuevo guión creado. Tienes que abrir la URL (página de autorización) que se muestra en la salida. Introduzca el PIN en su script que se muestra en la página de autorización de Twitter.
Ahora, también necesitas la "Clave de acceso" y el "Secreto de acceso", que puedes encontrar en la pestaña "Claves y fichas" de la configuración de tu aplicación de Twitter. También se muestran después de ejecutar el nuevo script Python creado ("authorize_twitter_app").
3. Crea el tweet Python script y añade las 4 claves mencionadas:
#!/usr/bin/env python
import sys
import tweepy
import string
#*** Edita estas 4 líneas. ***
API_CONSUMER_KEY = 'ADD YOUR CONSUMER KEY HERE'
API_CONSUMER_SECRET = 'ADD YOUR CONSUMER SECRET HERE'
API_ACCESS_KEY = 'ADD YOUR ACCESS KEY HERE'
API_ACCESS_SECRET = 'ADD YOUR ACCESS SECRET HERE'
#*** Edita estas 4 líneas. ***
auth = tweepy.OAuthHandler(API_CONSUMER_KEY, API_CONSUMER_SECRET)
auth.set_access_token(API_ACCESS_KEY, API_ACCESS_SECRET)
api = tweepy.API(auth)
# save commandline argument to shorten the tweet message
s = sys.argv[1]
# Lets tweet!
api.update_status(s[0:280])
chmod 755 /usr/bin/tweet_cli
Este guión se usa para crear tweets en twitter. Tiene una cadena como argumento.
4. Guiones de notificación personalizados para Icinga2
Atención: Antes de que puedas usar el script de notificación personalizada, tienes que tener un nuevo objeto de notificación en tu configuración de Icinga2. Puedes encontrar más información sobre la configuración de la notificación en los siguientes enlaces.
Crea estos dos scripts de notificación (para hosts y servicios) en la carpeta /etc/icinga2/scripts:
- Guión de notificación "tweet-host-notification.sh"
#!/bin/bash
if [ $NOTIFICATIONTYPE = 'CUSTOM' ]
then
/usr/bin/tweet_cli "#$NOTIFICATIONTYPE - Server $HOSTALIAS. $NOTIFICATIONCOMMENT"
else
if [ "$HOSTSTATE" = 'UP' ] || [ "$HOSTSTATE" = 'OK' ]
then
/usr/bin/tweet_cli "#$NOTIFICATIONTYPE OK - SERVER #$HOSTALIAS is $HOSTSTATE. Thanks for your patience."
else
/usr/bin/tweet_cli "#$NOTIFICATIONTYPE - SERVER #$HOSTALIAS is $HOSTSTATE. Will be fixed asap."
fi
fi
- Guión de notificación "tweet-services-notification.sh"
#!/bin/bash
if [ $NOTIFICATIONTYPE = 'CUSTOM' ]
then
/usr/bin/tweet_cli "#$NOTIFICATIONTYPE - Service $SERVICEDISPLAYNAME. $NOTIFICATIONCOMMENT"
else
if [ "$SERVICESTATE" = 'UP' ] || [ "$SERVICESTATE" = 'OK' ]
then
/usr/bin/tweet_cli "#$NOTIFICATIONTYPE OK - SERVICE #$SERVICEDISPLAYNAME is $SERVICESTATE. Thanks for your patience."
else
/usr/bin/tweet_cli "#$NOTIFICATIONTYPE - SERVICE #$SERVICEDISPLAYNAME on #$HOSTALIAS is $SERVICESTATE. Will be fixed asap."
fi
fi
Para más información sobre tweepy:
https://github.com/tweepy/tweepy
Más información sobre las notificaciones de icinga2:
https://icinga.com/docs/icinga2/latest/doc/03-monitoring-basics/#notifications