Was ist Synthetic-Monitoring?

Synthetic-Monitoring ist eine Monitoring-Methode, bei der man die Interaktion von Anwendenden mit einem System simuliert. Dabei kann es sich um eine App, eine Website oder eine beliebige Art von Software handeln, die für Nutzende zugänglich ist. Beim synthetischen Monitoring sammelt und analysiert man anschließend die aus den simulierten Interaktionen generierten Daten, um zu bewerten, wie sich die Anwendenden verhalten und wie das System auf die Eingaben und Aktionen der Benutzenden reagiert.

Eine häufige Anwendung ist das Verstehen und Optimieren einer Website: das Synthetic-Website-Monitoring. Aber Synthetic-Monitoring findet eine viel breitere Anwendung, die viele Bereiche umfasst. Sie wird zur Emulation von Desktop-/OS-Vorgängen, zur Erkennung von Bildmustern oder zur Durchführung von HTTP-Checks über ein Netzwerk verwendet. Diese Art des Monitorings erfolgt durch den Einsatz synthetischer Tests: eine Reihe von Skripten und Konfigurationsdateien, die dem Monitoring-Tool mitteilen, wie es synthetische Tests durchführen soll.

Diese sind für IT-Teams von großem Nutzen, um alle möglichen Anwendungsfälle zu testen, denen eine Software oder ein System ausgesetzt ist. Ferner können sie darauf basierend entscheiden, ob es Raum für Optimierungen oder Gründe für Änderungen gibt oder ob möglicherweise Maßnahmen zur Behebung von Problemen nötig sind.

Synthetic-Monitoring wird auch als proaktives Monitoring bezeichnet, da nicht auf Ereignisse gewartet wird, sondern Szenarien simuliert werden, um zu überprüfen, wie sich das überwachte System verhält. Es kann die Leistung und Verfügbarkeit von Systemen auf aktive Art und Weise validieren. Im Gegensatz dazu wird das klassische Monitoring, bei dem nur reale Daten analysiert werden, als passives Monitoring bezeichnet.

Das Synthethic-Monitoring-Dashboard in Checkmk

Wie funktioniert synthetisches Monitoring?

Im Allgemeinen werden synthetische Tests von QA-Engineers (Qualitätssicherung) erstellt, um eine Website, eine Applikation oder ein System zu testen. Je nach dem verwendeten Framework und dem Synthetic-Monitoring-Tool können diese Skripte viele Formen und Syntaxen annehmen. Synthetic-Monitoring-Lösungen führen die Tests aus und melden ihre Ergebnisse an das Monitoring-Tool. Anschließend analysieren sie die Daten, um das Verhalten des Systems zu bewerten. Falls nötig, kann man anschließend das System entsprechend der erzielten Ergebnisse verbessern oder anpassen. Mit neuen synthetischen Tests lassen sich diese Änderungen weiter verifizieren und die Qualität des Systems so weiter verbessern.

Häufig führt man synthetische Tests in Form einer automatisierten Aufgabe durch, die ansonsten Technik-Teams ausführen. Darüber hinaus ist es möglich, synthetische Tests manuell auszuführen, auch wenn dies eher selten vorkommt. Bei den meisten manuellen Eingriffen handelt es sich um die Aktualisierung von Tests, um diese an Änderungen im Verhalten oder in der Benutzeroberfläche der überwachten Systeme anzupassen.

Das Herzstück der synthetischen Überwachung sind synthetische Tests. Synthetische Tests sind die Schlüsselkomponente, die synthetisches Monitoring ermöglicht. Die Ergebnisse dieser Tests sind das, was Synthetic-Monitoring letztendlich überprüft. Die Tests müssen korrekt geschrieben und entsprechend Ihren eigenen Anwendungsfällen ausgeführt werden.

Die meisten Synthetic-Monitoring-Lösungen decken mit ihren synthetischen Tests eine Vielzahl von Szenarien ab. Auf diese Weise können Unternehmen die Funktionen der eingesetzten Software im vom Softwareanbieter ermöglichten Rahmen testen. 

Ganz gleich, ob Sie einen End-User-Clickstream auf Ihrer E-Commerce-Plattform testen oder Einkaufstransaktionen oder sogar Online-Spiele überwachen müssen, synthetische Tests decken diese Szenarien problemlos ab.

Die Synthethic-Monitoring-View in Checkmk mit drei Tests

Welche Synthetic-Monitoring-Arten gibt es?

Die bisherigen Beispiele machen deutlich, dass es mehrere Varianten des Synthetic-Monitorings gibt. Sie unterscheiden sich durch den jeweiligen Anwendungsfall, den man testen will, oder durch die Art des Systems, das man testen will. Schauen wir uns an, welche Arten es gibt und wofür sie verwendet werden.

Uptime-Monitoring

Auch als Availability-Monitoring bekannt, hilft Uptime-Monitoring dabei, die Verfügbarkeit und Reaktionsfähigkeit einer Webanwendung zu überprüfen. Synthetische Tests können einfach einen Ping oder eine GET-Anfrage an bestimmte Endpunkte versenden, um deren Erreichbarkeit zu testen. Sie können dabei auch mehrere Anfragen gleichzeitig erstellen, um die Reaktionsfähigkeit und Leistung einer Web-Applikation zu überwachen.

Synthetic-Website-Monitoring

Beim Synthetic-Website-Monitoring testet man die Verfügbarkeit und Navigierbarkeit einer Website. Mit dem synthetischen Website-Monitoring lassen sich nicht nur einfache Tests zur Überwachung der Erreichbarkeit durchführen, sondern auch komplexere Anwendungsfälle, bei denen hypothetische Benutzende durch die Website navigieren. Mit diesen synthetischen Tests lassen sich Antwortzeiten, Seitenladezeiten und beliebige Leistungskennzahlen einer Website überprüfen.

Synthetic-Transaction-Monitoring

Das Synthetic-Transaction-Monitoring ist etwas spezieller und geht somit über das Synthetic-Website-Monitoring hinaus. Es wird zum Testen von Websites als auch von Webanwendungen verwendet. Mit synthetischen Tests lassen sich beispielsweise Formularübertragungen validieren, die fehlerfreie Funktion von Anwendungen testen oder überprüfen, ob geschäftskritische Vorgänge wie das Auschecken aus einem Warenkorb problemlos funktioniert. Die Tests werden außerdem in regelmäßigen Abständen von Servern auf der ganzen Welt aus durchgeführt, um die vollständige Verfügbarkeit aller kritischen Funktionen Ihrer webbasierten Anwendungen und Websites sicherzustellen.

Real-User-Monitoring vs Synthetic-Monitoring: Was ist der Unterschied?

An dieser Stelle ist ein kurzer Hinweis auf den Unterschied zwischen Real-User-Monitoring und Synthetic-Monitoring nötig. Die beiden Begriffe werden oft verwechselt. Das Real-User-Monitoring (RUM) basiert auf den tatsächlichen Daten und Interaktionen, die Nutzende auf einem System durchführen, unabhängig davon, um welches System es sich handelt. Im Gegensatz zum Synthetic-Monitoring, das computergeneriert ist und eine Simulation des möglichen Verhaltens echter Nutzenden darstellt, zieht RUM demnach Daten aus der realen Welt heran.

Synthetic und Real-User-Monitoring unterscheiden sich also zumindest nicht in ihrem Ziel, nämlich der Sicherstellung, dass ein System bei optimaler Leistung funktionsfähig ist. Der Unterschied liegt in der Art und Weise, wie dies erreicht wird, nämlich durch die Verwendung völlig unterschiedlicher Datensätze. Es ist außerdem nicht notwendig, sich zwischen Real-User-Monitoring und Synthetic-Monitoring zu entscheiden. Beide Varianten lassen sich gleichzeitig und häufig sogar mit denselben Tools implementieren. Manchmal wird Synthetic-Monitoring nur auf Systemen eingerichtet, die sich in der Testphase befinden und noch nicht in Produktion sind; manchmal wird es parallel zum Real-User-Monitoring auf Systemen durchgeführt, die bereits in Betrieb sind. Die Entscheidung liegt bei den jeweiligen Teams und ihren spezifischen Gründen für die Überwachung.

Was sind die Vorteile eines synthetischen Monitorings?

Die Implementierung eines Synthetic-Monitorings bringt klare Vorteile. Ein großer Vorteil ist die Validierung der Leistung eines Systems. Beim sogenannten Synthetic-Performance-Monitoring erstellt man Tests, um die Leistung eines Systems unter Stress zu prüfen und zu beurteilen, ob Änderungen erforderlich sind, bevor es in Betrieb geht. Oder man überwacht einfach nur die Gesamtleistung, um sicherzugehen, dass sich die Änderungen nicht negativ auf Nutzende oder die internen Arbeitslasten auswirken. 

Das ist umso wichtiger, um Erkenntnisse zu gewinnen, die eher seltene Fälle oder Randsituationen betreffen. In diesen Szenarien ist es sehr schwierig, durch reale Anwendende genügend aussagekräftige Daten zu erhalten. 

Mit Synthetic-Transaction-Monitoring ist es möglich, eine Basis-Benchmark zu erstellen. Dabei beobachtet man, wie sich die Anwendung während einer Reihe von synthetischen Tests verhält. Basierend auf den Testergebnissen erhält man anschließend eine Benchmark darüber, wie die Anwendung unter normalen Bedingungen funktionieren sollte. Befindet sich die Anwendung dann im Live-Betrieb, kann man sie mit der Benchmark vergleichen und sofort erkennen, wenn die Leistung nachlässt.

Neben dem Synthetic-Performance-Monitoring kann Ihnen das synthetische Monitoring noch weitere Vorteile bieten. Es bietet unter anderem die Möglichkeit, die Erreichbarkeit eines Systems zu überwachen. Durch die Simulation des Verhaltens von Nutzenden, die eine bestimmte Barrierefreiheit benötigen, lassen sich Erkenntnisse darüber gewinnen, wie zugänglich eine Benutzeroberfläche oder ein System im Allgemeinen ist.

Auf ähnliche Weise ist es mit Synthetic-Monitoring möglich, die Erfahrung von Nutzenden zu simulieren, die geografisch weit entfernt von Ihrem Rechenzentrum mit einem System interagieren. Entwicklungs- und QA-Engineer-Teams können mit synthetischem Monitoring die Arten von Anfragen bestimmen, die eine Person wahrscheinlich durchführen wird – oder selbst Anfragen unter bestimmten Bedingungen initiieren, etwa das Routing von Nutzenden, sodass es die tatsächliche Art und Weise des Routings von diesen zu einem bestimmten geografischen Standort widerspiegelt.

Die Synthetic-Monitoring-View in Checkmk mit fehlgeschlagenen Tests

Die größten Herausforderungen beim Synthetic-Monitoring

Synthetic-Monitoring ist jedoch nicht ganz ohne Herausforderungen. So liegen viele der Schwierigkeiten bei der Einrichtung eines Synthetic-Monitoring-Systems in der Vorbereitung der richtigen synthetischen Tests. Heutzutage kommt in vielen Infrastrukturen eine Mischung aus Cloud- und On-Premises-Ressourcen zum Einsatz. Je größer die verteilte Umgebung ist, desto schwieriger ist es für DevOps- oder Engineering-Teams, alle möglichen Szenarien zu simulieren.

Fehler können übersehen werden, wenn ein bestimmter Ort oder eine bestimmte Situation nicht vorhergesagt und entsprechend getestet wird. Ohne vorher genau zu wissen, welchen Weg die Nutzenden beispielsweise auf einer Webanwendung nehmen, werden synthetische Tests zu einem Ratespiel. Bevor man mit der Implementierung einer Synthetic-Monitoring-Software beginnt, ist also etwas Vorarbeit nötig.

Das Synthetic-Monitoring erfordert von den Technik-Teams besondere Fähigkeiten, und nicht alle kennen sich damit aus. Verschiedene Testsprachen und Frameworks verwenden leicht unterschiedliche Methoden, um Tests zu schreiben und ein funktionierendes Synthetic-Monitoring-System einzurichten. Wenn Ihre Teams nicht bereits über spezielle Kenntnisse verfügen, kann sich die Überwachung schwierig und zeitaufwändig gestalten.

Selbst geringfügige Änderungen an der Benutzeroberfläche von Client-Anwendungen führen dazu, dass Testskripte fehlschlagen können, was wiederum Warnmeldungen und Benachrichtigungen auslöst und zuständige Admins unweigerlich in Sorge versetzt. Es ist daher wichtig, ein gutes Alarmierungs-/Benachrichtigungssystem zu haben, das unnötige Auslösungen vermeidet, um einer "Alarmmüdigkeit" vorzubeugen. Obwohl die Behebung der meisten Fehler oft trivial ist, hat Synthetic-Monitoring noch einen weiten Weg vor sich, bevor es als "einmal anfassen und vergessen"-Lösung gelten kann.

Zusammenfassung

Trotz der Herausforderungen ist es klar, dass Synthetic-Monitoring ein unglaublich nützliches Werkzeug für Unternehmen ist, die die Zuverlässigkeit ihrer Infrastruktur optimieren wollen. Monitoring-Tools werden immer häufiger integriert oder mit speziellen synthetischen Monitoring-Frameworks gekoppelt. Checkmk ist da keine Ausnahme.

Checkmk integriert die Leistung des Robot Frameworks in die bereits stark auf Automatisierung ausgelegten Funktionen von Checkmk Cloud und Checkmk Enterprise. Die Nachverfolgung der Ergebnisse synthetischer Tests von Checkmk ist somit so einfach wie das Einrichten eines normalen Monitoring-Agenten, mit integrierten Ansichten in den allgemeinen Checkmk Dashboards. Damit vereint Checkmk Synthetic- und IT-Monitoring in einer Plattform.