Die Spieleagentur Kastanie Eins bat mich um ein Programm, das die Server der Kunden überwacht. Es sollte Alarm schlagen, wenn deren Webseiten zu viel Speicherplatz verbrauchen und nicht mehr auf den gemieteten Platz passen. Dabei entstand dieses Projekt. Dass meine Methode überhaupt nicht funktioniert, wusste ich da noch nicht.
Ich habe einen Server programmiert, der alle fünf Minuten die Webseiten der Kunden besucht. Er kontrolliert, ob ein einstellbares Wort auf der Seite ist. Dieses Wort kommt üblicherweise aus der Datenbank, der Test kontrolliert also direkt den Webserver als auch die Verfügbarkeit der Datenbank. Der Scanner prüft auch den Fehlercode und kann sich mit Name und Passwort anmelden. Der Test ist also universell einsetzbar. Nicht nur für die eigenen Seiten, ich kann auch gucken, ob Google Aussetzer hat. In einer Grafik wird die Verfügbarkeit der letzten 24 Stunden angezeigt.

Hat eine Seite zu langsam, gar nicht oder falsch reagiert, wird der Balken auf der Grafik rot. Bei drei roten Balken in 24 Stunden wird diese Seite ganz oben angezeigt, damit der Fehler auffällt.
Dieses Überwachungsprojekt heißt Status of Sites, kurz Stasi. Bis hierhin ist immer noch nicht bekannt, ob die Festplatte voll ist. Dafür wird bei den Kunden ein kleines Programm namens Information Monitoring (IM) installiert, bestenfalls ohne ihr Wissen. Der IM lauscht auf den Befehl von Stasi, Daten zu sammeln. Es schaut, wie viel Platz auf der Platte ist, wie viel davon voll ist, und welche WordPress-Plugins oder Themes Updates brauchen. Die IMs werden nur stündlich abgefragt, nicht alle fünf Minuten. Schlecht gepflegte Seiten werden beispielsweise so dargestellt, alle Projekte brauchen Updates.

Bei dem Bild fällt auf, dass angeblich acht Terabyte frei sind. Das ist Quatsch, der Hoster erlaubt pro Seite ein Kontingent von nur 250GB. Wird das überschrieben, bekommt der Seitenbetreiber eine böse Mail. Was für Festplatten dahinterstehen, ist für die Webseite weder erkennbar noch relevant. Die IMs liefern also unsinnige Daten. Ein Werkzeug zur Überwachung von Webseiten sollte nicht gucken, wie es dem Server dahinter geht. Da gilt es dem Admin zu vertrauen, dass er seine Zahlen im Blick hat. Die Webseite und damit auch der IM können gar nicht herausfinden, ob ein Projekt gerade die zugelassenen Werte (Quota) sprengt. Lediglich auf Updates macht der IM aufmerksam.
Dieser Screenshot zeigt, wie Seiten und IMs eingegeben werden. Stasi läuft in WordPress, die Formulare sind aus Advanced Custom Fields. Das Theme ist einfach Generatepress mit ein bisschen Templating. Ganz einfach. Ungewöhnlich war nur, alle fünf Minuten die Seiten abgrasen zu lassen. Das ist mit einem Cronjob gebaut, der sich rekursiv so oft aufruft, bis alles erledigt ist.


Die Seiten in Stasi sind gruppiert in Projekte. Jedes Projekt kann den Inhalt mehrerer URLs prüfen und mehrere IMs abfragen. Dies ist das Projekt “Kastanie”. Bei einem Fehler lässt sich an den roten Balken ablesen, wie lange er schon besteht:

Stasi ist also eine einfache Überwachung von Webseiten. Ob die Server alle Updates haben, die Last erträglich ist und die Platten Platz haben, bekommt es nicht heraus. Das ist die Aufgabe eines Server-Monitoring wie Nagios und gehört zu den Werkzeugen des Server-Admins. Als ich fertig war mit Stasi und es einige Monate gute Daten geliefert hat, fand ich die Seite Uptimerobot. Damit habe ich nicht gerechnet, aber diese Seite funktioniert im Detail genau so wie Stasi. Jetzt habe ich gar keine Lust mehr, Stasi weiter zu pflegen und werde es wieder abschalten. Über das freie Kontingent im Webspace wird hoffentlich der Hoster rechtzeitig informieren.