Hostings werden im oberen Preisbereich (Managed hosting) häufig durch Monitoring-Systeme überwacht. Leider wird dabei nur bis zur Ebene des Dienstes (Apache / Webserver) beobachtet und nicht die eigentliche Funktion der Applikation (Drupal). Auf dieser Ebene kann alles noch lange OK aussehen, wenn in der Applikation die Prozesse für Benutzer gar nicht mehr funktionieren. Z.B. wenn ein Drupal nach Arbeiten aus Versehen im Wartungsmodus ist und auf jede Anfrage die Wartungsmeldung ausgibt.
Monitoring auf Applikations-Ebene
Abhilfe und echte Überwachung der unternehmenskritischen Funktionen ist also nur möglich, wenn die Prozesse und deren kritischen Indikatoren in Drupal überwacht werden.
Diese Idee ist nicht neu, aber die bisherigen Projekte haben sich nicht durchsetzten können. Module wie munin, icinga oder droptor binden deren gleichnamige Software-Produkte oder SaaS-Plattformen minimalistisch an. Die Module definieren aber alle ihre eigene Schnittstellen und so müsste jedes Modul 5+ verschiedene Integrationen anbieten, um von den üblichen Monitoring-Lösungen überwachbar zu werden. Entsprechend wird auf diese Integration komplett verzichtet und sobald ein Monitoring-Produkt zum Einsatz kommt müssen die kritischen Datenquellen für Überwachungen durch custom code extrahiert werden.
Was soll denn genau überwacht werden?
Zunächst erschliesst sich der Sinn des Monitoring nicht vollständig. Bei genauerer Betrachtung erkennt man hingegen, dass vieles schief gehen kann und dass man durch konsequente Checklisten die Qualitätssicherung in eine ganz andere Dimension bringen kann.
Einige Beispiele:
- Läuft der Hintergrundprozess mindestens alle 30minuten?
- Wurde in den letzten 24h min. ein Einkauf erfolgreich abgeschlossen?
- Wurde in der letzten Woche ein News-Beitrag publiziert?
- Bestätigt die Versionierungssoftware (git), dass der Code unverändert ist?
- Sind alle nötigen Module noch installiert?
- Wurden aus Versehen Konfigurationen geändert?
- Werden die Queues (Search API, Core Queue) abgearbeitet?
- Ist Drupal core und die Module auf dem neuesten Stand?
Das neue Monitoring Framework
Unser neues Projekt Monitoring generalisiert die überwachbaren Datenquellen in Sensoren und abstrahiert deren Definition.
Module können selber beschreiben, was kritische Faktoren sind. Die populärsten Module sind bereits integriert. Diese Datenquellen können dann konfiguriert werden und z.B. kritische Grenzen (welche oft abhängig von der Seiten-/Trafficgrösse sind) definieren.
Für die Integration der Sensordaten in die Software-Produkte (Munin, Icinga, ...) wird eine Konfiguration generiert, welche nur in das Produkt kopiert werden muss.
Jedes der Produkte holt sich nach seinen Vorgaben die Daten der Sensoren ab. Die Anbindung an weitere Produkte ist mit verhältnismässig wenig Aufwand möglich.
Für die Fehlersuche haben wir zusätzliche Modi definiert, welche automatisiert weiterführende Analyse zur Quelle eines kritischen Zustandes ausgeben.
Statistiken der Plattformen
Als Nebeneffekt zeichnet Munin mit besagten Sensoren Kennzahlen auf, welche einen hohen Informationsgehalt über eine Website haben. Aktivität auf einer Plattform (z.B. auch Erstellung von neuem Inhalt pro Tag) kann damit aufgezeichnet und visualisiert werden und bietet eine neue Perspektive auf das System. Die Kennzahlen können als wertvolle Datenquelle für die Strategieentwicklung, Inhalterstellung oder Priorisierung der Weiterentwicklung einer Plattform verwendet werden.
Einsatz in der Praxis
Wir empfehlen sämtlichen Nutzern von Drupal, Monitoring zu ihrer Website hinzuzufügen.
Bei MD Systems werden sämtliche Kundenprojekte mit Supportvertrag mit dem Modul nachgerüstet und in unserer Überwachungszentrale zusammengeführt.
Für Web-Dienstleister arbeiten wir an einer Standard-Umgebung, um eine Überwachungszentrale zu betreiben.
Gerne helfen wir bei der Einführung von Application-Monitoring in Ihrem Projekt.