[How-To] Zeige deinen PRTG Status auf einem Mac/Linux Desktop

Jedes System muss ein spezielles Programm zum anzeigen von Informationen auf dem Desktop besitzen. Auf einem Mac OS kann das z.B. “Geeklets” sein. Es ist kostenlos und einfach zu installieren. Nutzt man ein Linux System, könnte man z.B. “Conky” installieren.

Beide Tools haben eine große Community im Hintergrund und sind recht einfach zu bedienen. Sie zeigen gewünschte Werte auf dem Desktop in einer art Bar an. So können via Shell Skript z.B. auch PRTG Informationen dargestellt werden. Zum aktivieren dieser Funktionen muss noch ein bisschen was im PRTG geändert werden. Das ist vielleicht nicht die beste Möglichkeit der Einbindung, allerdings ist es die für mich einfachste Methode.

  1. Erstelle einen neuen PRTG-Nutzer (vielleicht heißt er ja “monitor”)
  2. Setze die Rechte so, dass dieser Nutzer alle Sensoren “read-only” Berechtigungen hat
  3. Teste den Zugriff auf die Funktionen, in dem du diese URL im Browser ein gibst. Hast du ein Ergebnis, bist du auf dem richtigen Weg
    1.  https://<<PRTG-Server-Name>>/api/getstatus.htm?id=0&username=<<username / monitor>>&password=<<password>>

Die weiteren Schritte können auch von Linux Nutzer genutzt werden, sind allerdings vorzugsweise für Mac OS und Geeklets geschrieben ;).

Erstelle ein neues “Shell” Objekt und fülle es mit diesem Shell-Quellcode:

#!/bin/bash

getapi=$(curl 'https://<<PRTG-Server-Name>>/api/getstatus.htm?id=0&username=<<username / monitor>>&password=<<password>>')

NewAlarms=$( echo $getapi | sed -e 's/[{}]/''/g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep "NewAlarms" | awk '{print $2}' | awk -F'[""]' '{print $2}')


if [ $NewAlarms -ne "0" ]; then
NewAlarms=$(printf "\e[41mNeue Alarme: "$NewAlarms)
echo -e $NewAlarms "\033[0m"
else
NewAlarms=$(printf "Neue Alarme: "$NewAlarms)
echo -e $NewAlarms "\033[0m"
fi

Natürlich musst du die “<<>>”-Felder in der URL mit deinen Werten anpassen ;).

Im Programmablauf wird zunächst das JSON-Objekt vom PRTG Server via API geladen. Danach werden die Werte so gefiltert und angepasst, dass wir das gewünschte Ergebnis bekommen. In dem Beispiel ist es der Wert zum Parameter “NewAlarms”.

Mit Hilfe der API kann alles mögliche aus dem PRTG ausgelesen werden. Eine kleine Dokumentation kann man sich hier unter folgender URL ansehen.

API-Documentation: Paessler PRTG-API

Beispiel:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.