Icinga2 Notifications via Pushover.net

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

Vor einiger Zeit habe ich in einem Artikel geschrieben, wie man den Notify My Android Dienst für Icinga 2 Notifications einbindet. Leider ist dieser hin und wieder für mehrere Tage offline. Deshalb bin ich zu einem größeren Anbieter gewechselt. Pushover.net bietet die selbe Funktionalität und war bei mir bis jetzt ohne Ausfall erreichbar.

Script anpassen

Pushover hat viele Integrationsbeispiele des API Aufrufes auf deren Homepage. Ich benutze das Perl Beispiel und habe es ein bisschen modifiziert. Das Script liegt auf meinem Monitoring Host unter /etc/icinga2/scripts/pushover.pl und hat diesen Inhalt:

#!/usr/bin/perl

use LWP::UserAgent;
use Mozilla::CA;

LWP::UserAgent->new()->post(
 "https://api.pushover.net/1/messages.json", [
 "token" => "meinapitoken",
 "user" => "meinusertoken",
 "message" => $ENV{'message'},
 "title" => $ENV{'title'},
]);

Über die Environment Variablen message und title lasse ich mir den Content später übergeben. Das war einfacher als Scriptparameter zu parsen und zu validieren. Für mich privat reicht das aus. Im Firmenumfeld würde ich noch ein bisschen was drum rum bauen.

NotificationCommand anlegen

Damit Icinga 2 nun weiß, wie das Script aufgerufen wird, muss ein entsprechendes NotificationCommand existieren. Meines liegt unter /etc/icinga2/zones.d/master/commands/pushover.conf und hat diesen Inhalt:

object NotificationCommand "push-notification" {
 import "plugin-notification-command"

 command = [ SysconfDir + "/icinga2/scripts/pushover.pl" ]

 env = {
 title = "$service.display_name$ on $host.display_name$: Status changed to $service.state$"
 message = "$service.output$"
 }
}

Diese Config kann man noch nach belieben anpassen. Es zeigt aber auf den ersten Blick alle wichtigen Informationen an.

pushover_overview


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück