Wer für’s Web programmiert oder bloggt, will nicht nur gefunden, sonder auch gelesen werden. Nur wenn der schlapp macht, ist die ganze Mühe umsonst. Eine -Überwachung muss her. Einige VServer-Anbieter bieten dies für ihre Kunden gratis an. Reicht eine Email nicht, weil der geschäftskritische Aufgaben zu erledigen hat, wünscht man schon eher eine Sofort-SMS. Das ist zwar nicht ganz so günstig, gibt es aber auch z.B. beim größten deutschen Server-Monitoring-Spezialisten livewatch.

Für den „kleinen Mann“, der seine drei Server ebenfalls live monitoren will und das von seinem Rechner aus muss schon Windows einsetzen (hier gibt es einige Programme, sogar gratis). Unter musste man im Falle eines Webservers auf die Kosole starren, die mit Hilfe von httping „belastbare Aussagen“ machen konnte. Ist das nix für Sie? Für mich auch nicht. Deshalb habe ich wieder mal und eingespannt. Diesmal mit einem ansehnlichen Erfolg…

Natürlich kommt man um ein so gutes Programm für Serverüberwachung (httping) nicht wirklich drum herum. Mit Vorgaben zur Anzahl von Pings, Messung nur mit HEAD-Antwort oder auch mit HTTP-Body oder interval und timeout ist es nicht zu schlagen. Aber warum soll man es nicht im anderen Kontext nutzen? Konsole ist ja längst nicht alles (auch wenn an dieser Stelle einige Slack- oder Debian-Leute gerne widersprechen).

Was wirklich fehlt, ist eine Möglichkeit, gleichzeitig mehrere Server zu überwachen (multithreading) und eine über-deutliche Darstellung. Mit Qt (als gekreutze Züchtung: PyQt4) ist dies durchaus möglich. Ein Fenster führt eine Liste von Servern, deren Werte gleich nebenan angezeigt werden. Dauert eine Verbindung länger als gewöhnlich (threshold), werden die Zahlen und der Servername rot. Als Tooltip kommen dann auch die min.- und max.-Werte zum Vorschein (für genauere Abschätzung). Ist ein Server völlig unerreichbar, wird der rote Vordergrund zum Hintergrund und der weiße Hintergrund zur Schriftfarbe. So fällt es sicher auf!

PyQWatch im Einsatz

PyQWatch im Einsatz

Im Hintergrund werkeln QThreads, die mit der Hauptanwendung kommunizieren – sobal sich was tut. Die Konfiguration nimmt man im Konfigurationsfenster vor: Servername, Ping-Anzahl, Pause, erlaubter Durchschnittswert… und natürlich der Pfad zu httping! Beim Speichern werden die Einstellungen sofort wirksamn. Die Threads stoppen ihre subprocess-Shells und werden neu gestartet.

Das Konzept ist für weitere Ideen (wie IMCP-Pings, MySQL-connects oder POP-Antwortzeitenmessung) offen. Auch eine Prüfung des Inhalts mit Hilfe von RegEx wäre sicher interessant. Bis dahin ist es aber noch ein langer Weg… Dennoch wünsche ich jetzt schon viel Spaß damit!

Aktuelle Version finden Sie unter https://svn.heilsberg.org/reps/PyQtWatch/trunk/ als SVN repository. Für eine Kopie einfach: „svn co https://svn.heilsberg.org/reps/PyQtWatch/trunk/ PyQWatch“ aufrufen. pyqwatch startet das Proramm aus der bash/shell heraus. Neu sind im Moment: Statusanzeige durch Systray-Icon (grün, gelb, rot) und Menue beim Systray-Icon.

[Update: Fehler bei der Ausführung ohne Konfiguration beseitigt.]