English English

Notificaciones de monitoreo de Icinga2 publicadas a través de un script Python en su cuenta de Twitter

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

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.