English English

Icinga2 Monitoring-Benachrichtigungen, die über ein Python-Skript auf Ihrem Twitter-Account veröffentlicht werden

Sie können Ihre Icinga2 Monitoring-Benachrichtigungen auch durch ein benutzerdefiniertes, in Python geschriebenes Skript mit Hilfe des Python-Programms "tweepy" twittern.

1. Installieren Sie das Python-Programm "tweepy"

Sie benötigen eine installierte Python-Umgebung und den Python-Paketmanager "pip".

pip install tweepy

 

2. Autorisierung für Ihren Twitter-Konto

Gehen Sie auf die Seite: http://twitter.com/oauth_clients

Bitte loggen Sie sich in Ihren Twitter-Account ein, den Sie für Ihre Icinga2-Überwachungsbenachrichtigungen verwenden möchten. Dann erstellen Sie bitte eine neue App.

Fügen Sie den "API Consumer Key" und "API Consumer Secret" (im Tab "Keys and tokens" -> "Consumer API keys") Ihrer neu erstellten Anwendung in das folgende Python-Skript ein:

#!/usr/bin/env python

import tweepy

#*** Bearbeiten Sie diese beiden Zeilen ***
API_CONSUMER_KEY = 'ADD YOUR CONSUMER KEY HERE'
API_CONSUMER_SECRET = 'ADD YOUR CONSUMER SECRET HERE'
#*** Bearbeiten Sie diese beiden Zeilen ***

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

Erstellen Sie dieses Python-Skript, fügen Sie Ihre API-Schlüssel ein und führen Sie dieses Skript aus, um Ihre Twitter-Anwendung für Ihren Server zu autorisieren.

chmod 755 /tmp/authorize_twitter_app  
./authorize_twitter_app

Verfolgen Sie die Ausgabe Ihres neu erstellten Skripts. Sie müssen die URL (Autorisierungsseite) öffnen, die in der Ausgabe angezeigt wird. Geben Sie die PIN, die auf der Twitter-Autorisierungsseite angezeigt wird, in Ihrem Skript ein.

Nun benötigen Sie auch den "Access Key" und "Access Secret", die Sie im Tab "Keys und Token" Ihrer Twitter-App-Einstellungen finden. Sie werden auch angezeigt, nachdem Sie das neu erstellte Python-Skript ("authorize_twitter_app") ausgeführt haben.

 

3. Erstellen Sie das Python-Skript, das für Erstellen von Tweets verwendet wird, und fügen Sie alle 4 erwähnten Schlüssel hinzu:

#!/usr/bin/env python

import sys
import tweepy
import string

#*** Bearbeiten Sie diese 4 Zeilen ***
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'
#*** Bearbeiten Sie diese 4 Zeilen ***

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

Dieses Skript wird verwendet, um Tweets auf Twitter zu erstellen. Es erhält eine Zeichenkette als Argument. 

 

4. Benutzerdefinierte Benachrichtigungsskripte für Icinga2

Hinweis: Bevor Sie das benutzerdefinierte Benachrichtigungs-Skript verwenden können, müssen Sie ein neues Benachrichtigungs-Objekt in Ihren Icinga2-Einstellungen erstellen. Sie können mehr über die Benachrichtigungseinstellungen in den Links weiter unten finden.

Erstellen Sie diese beiden Benachrichtigungsskripte (für Hosts und Services) im Ordner /etc/icinga2/scripts:

- Benachrichtigungs-Skript "tweet-host-notification.sh"

#!/bin/bash
if [ $NOTIFICATIONTYPE = 'CUSTOM' ]
then
        /usr/bin/twagios "#$NOTIFICATIONTYPE - Server $HOSTALIAS. $NOTIFICATIONCOMMENT"
else
        if [ "$HOSTSTATE" = 'UP' ] || [ "$HOSTSTATE" = 'OK' ]
        then
                        /usr/bin/twagios "#$NOTIFICATIONTYPE OK - SERVER #$HOSTALIAS is $HOSTSTATE. Thanks for your patience."
        else
                        /usr/bin/twagios "#$NOTIFICATIONTYPE - SERVER #$HOSTALIAS is $HOSTSTATE. Will be fixed asap."
        fi
fi

- Benachrichtigungs-Skript "tweet-services-notification.sh

#!/bin/bash
if [ $NOTIFICATIONTYPE = 'CUSTOM' ]
then
         /usr/bin/twagios "#$NOTIFICATIONTYPE - Service $SERVICEDISPLAYNAME. $NOTIFICATIONCOMMENT"
else
        if [ "$SERVICESTATE" = 'UP' ] || [ "$SERVICESTATE" = 'OK' ]
        then
                        /usr/bin/twagios "#$NOTIFICATIONTYPE OK - SERVICE #$SERVICEDISPLAYNAME is $SERVICESTATE. Thanks for your patience."
        else
                        /usr/bin/twagios "#$NOTIFICATIONTYPE - SERVICE #$SERVICEDISPLAYNAME on #$HOSTALIAS is $SERVICESTATE. Will be fixed asap."
        fi
fi

 

Für weitere Informationen über tweepy:

https://github.com/tweepy/tweepy

Weitere Informationen über icinga2-Benachrichtigungen:

https://icinga.com/docs/icinga2/latest/doc/03-monitoring-basics/#notifications

Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Ok