Mitteilung auf's Handy: Wie Du mit Pushover dein Monitoring verbesserst

Wenn du zu den Menschen gehörst, die sich Monitoring-Nachrichten per E-Mail zukommen lassen, solltest du einen Blick auf Pushover riskieren. Wir stellen vor.

Dass Monitoring von Systemen unglaublich wichtig ist, hat mittlerweile so ziemlich jeder mitbekommen. Läuft eine Automatisierung daneben, lassen sich viele per E-Mail darüber informieren.
Nun gibt es aber auch alternative Kanäle, die man ins Auge fassen sollte, denn wenn der E-Mail-Server schlapp macht, verpasst ihr unter Umständen wichtige Mitteilungen. Ich nutze seit einiger Zeit den Dienst Pushover:

“Pushover makes it easy to get real-time notifications on your Android, iPhone, iPad, and Desktop (Pebble, Android Wear, and Apple watches, too!)”

Pushover einrichten

Nach der erfolgreichen Anmeldung auf der Webseite von Pushover, bekommst du automatisch einen 30-stelligen Benutzerschlüssel zugewiesen, mit welchem dich Applikationen identifizieren und dir Mitteilungen senden können.
Du solltest den Schlüssen weitestgehend geheim halten. Weitestgehend, weil Pushover die Möglichkeit bietet Benutzergruppen anzulegen. Wenn eine Nachricht an eine Gruppe geschickt wird, bekommen automatisch alle Benutzer in der Gruppe die Nachricht.

Zusätzlich benötigst du mindestens eine Client-App, welche für Android, iOS und Windows zur Verfügung steht. Es gibt hier keine Limitierung für ein Maximum an Geräten.
Nach der Installation kann der Client mit deinem Account verknüpft werden.

Über die Weboberfläche können dann Anwendungen angelegt werden. Jede Anwendung bekommt ihren eigenen API-Schlüssel. Diese Daten - user key & api token - stellen zusammen mit der Mitteilung an sich das Minimum für einen Nachrichtenversand dar. Wir können mit dem Code loslegen.

Nachrichten erzeugen und abschicken

Die Schnittstelle zu Pushover funktioniert über eine simple, versionierte REST API. Dadurch haben wir eine große Freiheit in der Wahl unserer Programmiersprache. Alles was wir tun müssen, ist einen POST-Request an die HTTPS-Adresse https://api.pushover.net/1/messages.json abzusetzen. Der request muss dabei folgende Parameter enthalten:

  • token - API-Schlüssel deiner Applikation
  • user - Dein Benutzerschlüssel
  • message - Die zu versendende Nachricht

Es gibt noch einige optionale Parameter, die unsere Nachricht genauer spezifizieren können:

  • device - Standardmäßig werden Nachrichten an alle Geräte eines Benutzers gesendet. Mit diesem Parameter können wir die Mitteilung auch nur an einzelne Geräte schicken
  • title - Der Titel deiner Nachricht. Wenn dieser nicht angegeben wird, verwendet Pushover den namen der Applikation
  • url - Eine zusätzliche URL, welche in der Nachricht als anklickbares Element auftaucht
  • url_title - Titel für die URL
  • priority - Ein Prioritätswert zwischen -2 und 2. Die genauen Bedeutungen können in der Dokumentation nachgeschlagen werden
  • timestamp - Genauer UNIX Zeitstempel für die Nachricht. Wenn dieser nicht angegeben ist, verwendet Pushover den Zeitpunkt des Empfangs der Nachricht durch die REST API
  • sound - Mitteilungston beim Empfang der Nachricht du den Client

Um also z.B. mit PHP eine Nachricht zu verschicken, können wir beispielhaft folgenden Code verwenden, welcher den request mit curl absetzt:

<?php

curl_setopt_array($ch = curl_init(), array(
  CURLOPT_URL => "https://api.pushover.net/1/messages.json",
  CURLOPT_POSTFIELDS => array(
    "token" => "abc123",
    "user" => "user123",
    "message" => "hello world",
  ),
  CURLOPT_SAFE_UPLOAD => true,
));
curl_exec($ch);
curl_close($ch);

Mit Ruby könnte der Code so aussehen:

require "net/https"

url = URI.parse("https://api.pushover.net/1/messages.json")
req = Net::HTTP::Post.new(url.path)
req.set_form_data({
  :token => "APP_TOKEN",
  :user => "USER_KEY",
  :message => "hello world",
})
res = Net::HTTP.new(url.host, url.port)
res.use_ssl = true
res.verify_mode = OpenSSL::SSL::VERIFY_PEER
res.start {|http| http.request(req) }

Weitere Beispiele gibt es in der FAQ von Pushover.

In der Regel taucht die Mitteilung übrigens innerhalb von 1-3 Sekunden nach dem abschicken auf den einzelnen Geräten auf.

Es nervt! Sei still!

Sehr praktisch ist die Möglichkeit, sogenannte “quiet hours” zu definieren. In diesen Zeiten wird der Client beim Empfang weder einen Ton abspielen, noch vibrieren. Ausnahme: durch eine hohe Priorität von Nachrichten kann man dies trotzdem umgehen. Somit verpasst du keine kritischen Mitteilungen.

Was kostet Pushover und wie ist es limitiert?

Der Dienst selbst ist kostenlos, wenn Du nicht mit mehr als 7.500 Nachrichten im Monat rechnest. Diese Menge sollte für Privatanwender vollkommen ausreichen. Wenn Du doch mehr brauchst, gibt es dafür gestaffelte Preise. Das größte Paket bietet 50.000 Nachrichten pro Monat und kostet 225$.

Allerdings ist der Client kostenpflichtig, wenn auch nicht teuer. Alle verfügbaren Clients können 7 Tage kostenfrei getestet werden, danach kostet jede App einmalig jeweils 4,99$. Keine horrende Summe für eine ordentliche Leistung.

Für wirklich kritische Anwendungen sollte man mehrere Kanäle nutzen, anstatt auf nur einen Kanal zu vertrauen. Pushover kann man jedenfalls in Betracht ziehen, es kann eine sinnvolle Ergänzung oder Alternative sein. Auf welche Kanäle setzt Du beim Monitoring?

Auch interessant