Neues Projekt: IcingaBusylightAgent

Die letzten Tage habe ich an einem neuen Projekt gearbeitet, welches ich gerne vorstellen möchte: IcingaBusylightAgent.

Alles begann mit einer neuen Telefon-Anlage in unserem Büro. Anstatt physischer Endgeräte kommunizieren meine Arbeitskollegen nun mit Softphones. Dazu gehört auch ein sogenanntes Busylight, welches am Monitor oder an der Trennwand angebracht wird und den Instant Messenger-Status anzeigt. Geht ein Anruf ein, pulsiert die Leuchte und spielt einen Klingelton ab.

Mit großer Freude habe ich gesehen, dass der Hersteller dieses USB-Gadgets, Plenom, seine Hausaufgaben gemacht hat und die Schnittstelle in Form eines SDKs (Software Development Kits) für .NET-Programmiersprachen öffnet. Nach vielen Jahren war das mal wieder ein Anreiz, mich mit Microsoft Visual Studio zu beschäftigen...

Die Idee

Mir fiel gleich Icinga2 als potenzieller Einsatzzweck für die USB-Leuchte ein. Fehlerhafte Services und Hosts könnten per Leuchte angezeigt werden - je nach Arbeitsweise stößt das mehr ins Auge als eine weitere E-Mail im Posteingang.

Icinga2 bietet eine gut dokumentierte API an, welches hierfür als Schnittstelle dient. Nachdem ein entsprechender Benutzer für den Datenaustausch berechtigt wurde, lassen sich unter anderem Host- und Servicedaten abfragen. Diese Daten liegen im JSON-Format vor und können so leicht weiterverarbeitet werden. In periodischen Abständen könnte ein Agent also Daten abfragen und auswerten...

Der aktuelle Status

Aktuell ist der Agent nach dem Start als Symbol im Benachrichtigungsfeld (Systray) von Microsoft Windows zu erkennen. In periodischen Abständen wird eine Icinga2-Installation per HTTPS kontaktiert. Alle Dienste, die nicht okay und/oder bestätigt sind, werden ausgewertet. Je nach Status und Benutzerkonfiguration pulsiert das Busylight und ein Warnungston wird abgespielt.

Der Benutzer kann eine Vielzahl an Einstellungen vornehmen, beispielsweise Farben und Töne, sowie den Aktualisierungszeitpunkt.

Ausblick

Die Software ist noch ein einem sehr frühen Stadium, es fehlen noch einige Funktionen - es gibt noch Bugs. Da ich kein qualifizierter Programmierer bin, freue ich mich über jede Hilfe. Den Quellcode habe ich auf GitHub veröffentlicht - hier gibt es auch eine vollständige Liste aller noch zu erledigenden Hausaufgaben.

Um mal einige Dinge zu nennen:

  • Tooltips im Systray könnten ausgefallene Hosts oder Services anzeigen
  • Mithilfe von Blacklists/Whitelists könnte man Hosts/Hostgruppen filtern
  • Die Koexistent mit Skype for Business sorgt manchmal für Probleme

Du kannst C#? Melde dich! 🙂

Übersetzungen: