English English

Icinga2 - Veröffentlichen Sie Ihre Icinga2-Benachrichtigung auf Twitter

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.

 

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