Sie können Ihre Icinga2-Benachrichtigung auch auf Ihrem Twitter-Konto twittern. Diese Benachrichtigungsmethode kann zusätzlich zu Ihren bestehenden Benachrichtigungsmethoden wie E-Mail, etc. hinzugefügt werden.
Sie müssen einen Twitter-Account erstellen, wenn Sie keinen haben. Sie können ihren normalen Twitter-Account verwenden und Sie brauchen keinen Entwickler-Konto oder eine spezielle Art von Konto.
Anforderungen
In diesem Tutorial wird Ubuntu als Betriebssystem verwendet. Sie müssen Icinga2 installiert und konfiguriert haben. Dieses Tutorial behandelt nur die Installation und Konfiguration einer neuen Benachrichtigungsmethode in Icinga2, um Benachrichtigungen auch über Tweets auf Twitter zu veröffentlichen.
Twidge installieren und konfigurieren
Dieses Programm ist auf dem offiziellen Repositorium von Ubuntu verfügbar und kann über den Paketmanager "apt" installiert werden.
apt-get install twidge
Nun müssen Sie das Setup ausführen. Dies geschieht mit diesem Befehl.
twidge setup
Folgen Sie den Anweisungen dieses Programms. Dann müssen Sie sich in Ihr Twitter-Konto einloggen, das Sie verwenden möchten, und die URL öffnen, die in diesem Programm angezeigt wird. Sie müssen den Zugang zu ihren Twitter-Account autorisieren, deshalb müssen Sie diesen Autorisierungsprozess durchführen.
Nun müssen Sie die Konfigurationsdatei dieses Programms "twidge" zu dem icinga2-Ordner kopieren.
sudo cp ~/.twidgerc /etc/icinga2/twidgerc
Sie können die ursprüngliche Konfigurationsdatei "~/.twidgerc" löschen, wenn Sie sie nicht mehr benötigen.
Aber die Konfigurationsdatei /etc/icinga2/twidgerc (die hier verwendet wird - Sie können auch einen anderen Pfad ändern) wird von "twidgerc" verwendet, um Tweets aus Ihrer Icinga2-Benachrichtigung zu erstellen.
Benachrichtigungsskripten für Icinga2 erstellen
Wechseln Sie dann in das Skriptverzeichnis Ihres Icinga2-Ordners und erstellen Sie die Benachrichtigungsskripte für Host- und Servicebenachrichtigungen. Sie müssen daran denken, dass Sie ihre Nachricht im Befehl "echo" kurz halten müssen, weil es eine Zeichenbeschränkung von 140 Zeichen auf Tweets gibt.
Ein Shell-Skript für Host-Benachrichtigungen erstellen
vim /etc/icinga2/scripts/twitter-host-notification.sh
#!/bin/sh
/bin/echo "#$NOTIFICATIONTYPE - SERVER #$HOSTALIAS is $HOSTSTATE." | twidge -c /etc/icinga2/twidgerc update
Ein Shell-Skript für Service-Benachrichtigungen erstellen
vim /etc/icinga2/scripts/twitter-service-notification.sh
#!/bin/sh
/bin/echo "#$NOTIFICATIONTYPE - SERVICE $SERVICEDISPLAYNAME on Server $HOSTALIAS is $SERVICESTATE." | twidge -c /etc/icinga2/twidgerc update
Nun müssen die erstellten Benachrichtigungs-Shellskripte die richtige Dateiberechtigungen erhalten.
chmod +x /etc/icinga2/scripts/twitter-service-notification.sh
chmod +x /etc/icinga2/scripts/twitter-host-notification.sh
Benachrichtigungen auf Icinga2 konfigurieren
Hier in diesem Tutorial werden wir das Admin-Konto "icingaadmin" als Beispiel verwenden.
1. Fügen Sie einen NotificationCommand für die Host- und Servicebenachrichtigung hinzu.
vim /etc/icinga2/conf.d/commands.conf
object NotificationCommand "twitter-host-notification" {
import "plugin-notification-command"
command = [ SysconfDir + "/icinga2/scripts/twitter-host-notification.sh" ]
env = {
NOTIFICATIONTYPE = "$notification.type$"
HOSTNAME = "$host.name$"
HOSTALIAS = "$host.display_name$"
HOSTADDRESS = "$address$"
HOSTSTATE = "$host.state$"
LONGDATETIME = "$icinga.long_date_time$"
HOSTOUTPUT = "$host.output$"
NOTIFICATIONAUTHORNAME = "$notification.author$"
NOTIFICATIONCOMMENT = "$notification.comment$"
HOSTDISPLAYNAME = "$host.display_name$"
}
}
object NotificationCommand "twitter-service-notification" {
import "plugin-notification-command"
command = [ SysconfDir + "/icinga2/scripts/twitter-service-notification.sh" ]
env = {
NOTIFICATIONTYPE = "$notification.type$"
SERVICEDESC = "$service.name$"
HOSTNAME = "$host.name$"
HOSTALIAS = "$host.display_name$"
HOSTADDRESS = "$address$"
SERVICESTATE = "$service.state$"
LONGDATETIME = "$icinga.long_date_time$"
SERVICEOUTPUT = "$service.output$"
NOTIFICATIONAUTHORNAME = "$notification.author$"
NOTIFICATIONCOMMENT = "$notification.comment$"
HOSTDISPLAYNAME = "$host.display_name$"
SERVICEDISPLAYNAME = "$service.display_name$"
}
}
2. Öffnen Sie die Datei /etc/icinga2/conf.d/templates.conf
In dieser Datei befinden sich die Vorlagen Ihrer Hosts und Dienste, die ähnlich aussehen sollten wie diese:
template Host "generic-host" {
[...]
}
Fügen Sie diese Variable zu allen Vorlagen ("Host", "Service") hinzu, die Sie verwenden:
vars.notification["twitter"] = {
users = [ "icingaadmin" ]
}
Sie müssen auch die Vorlagen für die Benachrichtigungen in derselben Datei hinzufügen.
Die so aussieht:
template Notification "twitter-host-notification" {
command = "twitter-host-notification"
states = [ Up, Down ]
types = [ Problem, Acknowledgement, Recovery, Custom ]
vars.notification_interval = 0
period = "24x7"
}
/**
* Provides default settings for service notifications.
* By convention all service notifications should import
* this template.
*/
template Notification "twitter-service-notification" {
command = "twitter-service-notification"
vars.notification_interval = 0
states = [ OK, Warning, Critical, Unknown ]
types = [ Problem, Acknowledgement, Recovery, Custom ]
period = "24x7"
}
Sie müssen jetzt die Benachrichtigung zu Ihren Diensten und Hosts hinzufügen. Das geht ganz einfach mit dem Befehl "Benachrichtigung anwenden".
3. Fügen Sie dies der Datei /etc/icinga2/conf.d/notifications.conf hinzu.
apply Notification "twitter-icingaadmin" to Host {
import "mail-host-notification"
command = "twitter-host-notification"
users = [ "icingaadmin" ]
interval = 0 //disable re-notification
assign where host.vars.notification.twitter
}
apply Notification "twitter-icingaadmin" to Service {
import "mail-service-notification"
command = "twitter-service-notification"
interval = 0 //disable re-notification
users = [ "icingaadmin" ]
assign where host.vars.notification.twitter
}
4. Und schließlich sollte die Konfigurationsdatei des Programms "twidgerc" die richtige Dateiberechtigung erhalten.
chmod 644 /etc/icinga2/twidgerc
chown nagios:nagios /etc/icinga2/twidgerc
Starten Sie nun Icinga2 neu und Sie sind fertig.
Sie können z.B. auch die in diesem Tutorial erstellten Skripte im Ordner "/etc/icinga2/scripts/" anpassen, um verschiedene Befehle entsprechend dem Servicestatus eines Dienstes auszuführen. Der Zustand eines Dienstes kann über die Variable "$SERVICESTATE" überprüft werden.
Dies war ein Beispiel dafür, wie man Icinga2-Benachrichtigungen für Twitter einrichtet.