Synthetic Monitoring ist ein Verfahren zur Überwachung der Website-Performance, bei dem der Transaktionspfad zwischen einem Client und einem Anwendungsserver simuliert und alle Ereignisse überwacht werden.
Das Ziel des Synthetic Monitoring ist, zu verstehen, welche Erfahrungen ein echter Benutzer mit einer Anwendung oder Website macht.
In diesem Artikel nehmen wir dieses Thema genauer unter die Lupe. Dabei möchten wir euch ein paar Tipps geben, wie ihr eure Synthetic-Monitoring-Tools und -Strategie noch besser einsetzen könnt.
Synthetic Monitoring ist ein Typ des IT-Monitorings mit dem Schwerpunkt Website-Performance. Es gibt noch weitere Typen, z. B. Application Performance Monitoring (APM) und Real User Monitoring (RUM), die jeweils eigene Stärken und Schwächen haben.
Synthetic Monitoring kann Antworten auf Fragen wie diese liefern:
Mit den besten Synthetic-Monitoring-Tools könnt ihr in jeder Entwicklungsphase Tests durchführen, alles rund um die Uhr in einer kontrollierten Umgebung überwachen, mittels A/B-Tests Auswirkungen auf die Performance ermitteln, ein Benchmarking gegenüber Konkurrenten vornehmen sowie Performance-Trends über mehrere Regionen hinweg vergleichen und analysieren.
(Hier könnt ihr Splunk Synthetic Monitoring erkunden, ein führendes Tool für Unternehmensumgebungen.)
Anbieter von Synthetic Monitoring bieten eine Remote-Infrastruktur (oftmals global), die eine Website in regelmäßigen Abständen aufruft und die Performance-Daten für jeden Durchlauf aufzeichnet.
Wichtig ist in diesem Zusammenhang, dass der gemessene Datenverkehr nicht von realen Benutzern stammt, sondern synthetisch generiert wird, um Daten zur Seiten-Performance zu sammeln.
Eine einfache Synthetic-Monitoring-Simulation erfordert drei Komponenten:
Beim Synthetic Monitoring ist es möglich, ein Skript zu programmieren, um Client-Server-Transaktionspfade für verschiedene Szenarien, Objekttypen und Umgebungsvariablen zu generieren. Das Synthetic-Monitoring-Tool sammelt und analysiert dann während der Interaktion der Kundschaft mit eurer Anwendung oder eurem Webserver Daten zur Anwendungsleistung:
(Verwandtes Thema: synthetische Daten)
Synthetic-Monitoring-Checks werden in regelmäßigen zeitlichen Abständen durchgeführt. Die Häufigkeit dieser Überprüfungen richtet sich in der Regel danach, was überprüft wird. Die Verfügbarkeit kann beispielsweise einmal pro Minute überprüft werden.
Ihr könnt alle möglichen Arten von Monitoring-Tools einrichten, z. B.:
Browser-Monitoring-Tools: Ein echtes Browser-Monitoring-Tool simuliert das Erlebnis von Benutzern, die eure Website über einen modernen Webbrowser besuchen. Ein Browser-Monitoring-Tool kann in kurzen zeitlichen Abständen von mehreren Standorten aus ausgeführt werden und euch in bestimmten Fällen benachrichtigen, beispielsweise
Klickpfad-Monitoring-Tools:Klickpfad-Monitoring-Tools simulieren ebenfalls den Besuch von Benutzern auf eurer Website, überwachen aber bestimmte Arbeitsabläufe. Damit könnt ihr benutzerdefinierte Skripte erstellen, die durch eure Website navigieren und bestimmte Sequenzen von Klicks und Benutzeraktionen überwachen. Diese Skripte können in regelmäßigen zeitlichen Abständen ausgeführt werden.
Broken-Link-Monitoring-Tools: Mit diesen Monitoring-Tools könnt ihr Skripte erstellen, die alle Links zu einer bestimmten URL testen. Alle Fehler werden gemeldet, sodass ihr einzelne defekte Links untersuchen könnt.
HTTP-Monitoring-Tools: HTTP-Monitoring-Tools senden HTTP-Anfragen, um die Verfügbarkeit bestimmter API-Endpunkte oder -Ressourcen zu ermitteln. Damit solltet ihr Performance-Grenzwerte festlegen können, sodass ihr informiert werdet, wenn die Performance unter die Baseline fällt.
(Hier erfahrt ihr Genaueres über die Unterschiede zwischen Synthetic und Real User Monitoring.)
Als Nächstes sehen wir uns einige Verzögerungsszenarien in der Client-Server-Kommunikation an.
Der Synthetic-Monitoring-Agent simuliert das Verhalten eines realen Benutzers, sodass das Synthetic-Monitoring-Tool Daten zu vordefinierten Kennzahlen (Verfügbarkeit, Antwortzeit usw.) erfassen kann. Der Agent folgt dabei einer programmierbaren Testroutine, deren Konfiguration Folgendes umfassen kann:
Die Komponente zum Generieren von Szenarien spielt eine Reihe von Szenarien durch, die die entsprechenden Performance-Einbußen oder Netzwerkausfälle simulieren. Zusätzlich kann die Verteilung mehrerer Agents definiert werden, um weltweite Benutzerzugriffe auf einen Webservice über verschiedene Rechenzentren und dementsprechende Entwicklungen und Änderungen zu simulieren.
Die Ausgabe von Synthetic-Monitoring-Tools kann in visueller Form oder als Zeitreihendaten erfolgen. Mit einer Vielzahl statistischer Analyse- und Machine-Learning-Methoden könnt ihr diese Ausgabedaten dann weiter untersuchen.
Für Analysten sind vor allem folgende Aspekte von Interesse:
Aktive Agent-Tests können für viele verschiedene Monitoring-Typen verwendet werden, darunter API-Monitoring, Komponenten-Monitoring, Performance-Monitoring und Lasttests.
Der Kerngedanke ist, im Bedarfsfall reale Nutzungsszenarien zu simulieren. Dabei kann es sich um gelegentliche und nur sporadisch verfügbare Interaktionen handeln.
Nachdem ihr nun die Grundlagen kennt, können wir uns ansehen, wie ihr das richtige Tool für eure Zwecke findet. Dazu haben wir alle Funktionen aufgezählt, die ein leistungsstarkes Synthetic-Monitoring-Tool für Unternehmen haben sollte. Los geht’s.
Ein wesentlicher Vorteil des Synthetic Monitoring besteht darin, dass sich für Tests konkrete Aktionen festlegen lassen. So könnt ihr die wichtigsten Abläufe eurer Anwendung – z. B. den Bezahl- oder Anmeldevorgang – nacheinander auf Funktionsfähigkeit und Leistung durchtesten. Das nennt man Scripting. Wie nützlich ein Tool ist, hängt direkt von seinen Scripting-Funktionen ab.
Dies sind einige der Scripting-Funktionen, auf die ihr unbedingt achten solltet:
Da Unternehmens-Websites täglich geändert werden und einzelne Skripte dann möglicherweise nicht mehr funktionieren, braucht ihr natürlich ein Tool mit ausreichenden Troubleshooting-Funktionen. Stellt euch dazu folgende Fragen:
Die Abbildung unten zeigt exemplarisch, wie ein Test des erfolgskritischen Bezahlvorgangs im branchenüblichen Aufzeichnungs-Tool Selenium IDE aussieht.
Synthetic-Monitoring-Tools haben den großen Vorteil, dass sich damit auch hypothetische Szenarien durchspielen und deren Auswirkungen auf die Performance untersuchen lassen. Damit ihr diese Auswirkungen auch einfach und klar beurteilen könnt, braucht ihr das richtige Maß an Flexibilität und die richtigen Optionen.
Einige häufige Beispiele:
Wie umfassend ein bestimmtes Tool diese Aufgaben ausführen kann, hängt davon ab, wie viel Kontrolle ihr bei einem Test habt. Um die Ergebnisse gängiger Web-Performance-Versuche bewerten zu können, solltet ihr u. a. auf folgende Konfigurationsoptionen achten:
Die Konfiguration eines Tests mit verschiedenen Optionen ist natürlich erst die halbe Miete. In all diesen Fällen müsst ihr unter verschiedenen Umständen Performance-Daten zu euren Websites und Anwendungen sammeln und diese dann vergleichen.
Der springende Punkt bei der Wahl eines Tools ist, inwieweit es euch ermöglicht, Daten zu vergleichen und Unterschiede visuell darzustellen, denn davon hängt ab, wie schnell und einfach ihr Ergebnisse bekommt. Dies sind einige Funktionen, die das Tool unbedingt aufweisen sollte:
So sieht beispielsweise ein Vergleichsbericht in Splunk Synthetic Monitoring aus:
Nur mit wenigen Tools lassen sich Ausfälle oder Verfügbarkeitsprobleme so gut erkennen wie mit einem Synthetic-Monitoring-Tool, das eure Website aktiv von außen testet. Entscheidend ist dabei jedoch, wie das Tool Ausfälle definiert und wie es euch darüber benachrichtigt.
Achtet insbesondere auf Folgendes:
Wenn beim Zugriff auf eine Website Schwierigkeiten auftreten, muss das noch lange nicht heißen, dass ein Ausfall vorliegt. Falsch positive Warnmeldungen können euer Team auf die Dauer überlasten. Deshalb solltet ihr auch auf die folgenden erweiterten Funktionen Wert legen:
Dieser reale Screenshot zeigt exemplarisch, wie Splunk Synthetic Monitoring eine fehlerhafte Seite meldet:
Wenn eure Synthetic-Monitoring-Lösung einen Ausfall erkannt hat, muss sie euch und euer Team darüber benachrichtigen. Wie die Benachrichtigung aussehen sollte, hängt von der Arbeitsweise eures Teams ab. E-Mail- und SMS-Benachrichtigungen sind das absolute Minimum.
Darüber hinaus solltet ihr euch auf Benachrichtigungsoptionen konzentrieren, die sich möglichst einfach und direkt in die Arbeitsabläufe eures Teams integrieren lassen, damit euer Team sofort informiert ist und reagieren kann.
Hier einige wichtige Optionen:
Die Abbildung unten zeigt einen typischen benutzerdefinierten Webhook. Eine ähnliche Funktion sollte auch euer Synthetic-Monitoring-Tool bieten.
Zu den größten Vorteilen von Synthetic-Monitoring-Lösungen gehört, dass sie euch bei der Bewertung der Performance und User Experience einer Website unterstützen können – und zwar ohne große Testgruppen, die realen Datenverkehr erzeugen.
Synthetic-Monitoring-Tools können daher bereits in der Vorproduktionsphase und anderen vorgelagerten Umgebungen (Bereitstellung, Abnahmetest, Qualitätssicherung usw.) eingesetzt werden. Ihr habt also die Möglichkeit, die Leistung eurer Website schon in der laufenden Entwicklung zu testen. Das verschafft euch einen immensen Zeitvorteil, da ihr die Performance im Vorfeld optimieren und später fortlaufend nachbessern könnt.
Es gibt jedoch eine Voraussetzung: Euer Tool muss mit vorgelagerten Umgebungen kompatibel sein und dort Performance-Daten erfassen können. Außerdem sind einige Konfigurationsoptionen speziell für Testumgebungen erforderlich. Folgende Funktionen sind für Vorproduktionstests wichtig:
Befindet sich der Teststandort außerhalb eurer Umgebung? Benötigt ihr eine Funktion, mit der ihr IP-Adressen auf eine Whitelist setzen könnt? Wie viel Arbeit übernimmt euer Security-Team?
Splunk Synthetic Monitoring bietet beispielsweise Code zum Kopieren und Einfügen, mit dem ihr eine Docker-Instanz für Website-Tests in der Vorproduktionsphase starten könnt:
Ein häufiger Anwendungsfall für Synthetic-Monitoring-Tools sind Performance-Messungen mit dem Ziel, das eigene Abschneiden gegenüber der Konkurrenz zu bewerten.
Dieser Anwendungsfall ist nur mit Synthetic Monitoring möglich, da ihr bei anderen Tools – z. B. RUM- oder APM-Tools – einen JavaScript-Tag auf der Website oder einen Software-Agent in der Backend-Infrastruktur einsetzen müsst. Das geht natürlich nur auf euren eigenen Websites, aber nicht auf denen der Konkurrenz.
Mit einem Synthetic-Monitoring-Tool ist ein Benchmarking-Test einer Mitbewerber-Website dagegen überhaupt kein Problem. Ihr braucht lediglich eine URL – mehr nicht!
Einen Haken gibt es aber doch: Vielen Websites ist eine Reihe von Web-Sicherheitsprodukten vorgeschaltet, die eigentlich Cyberkriminellen, Bots und anderen Betrügern das Handwerk legen sollen, aber auch Datenverkehr von Synthetic-Monitoring-Tools blockieren können. Oft sind die IP-Adressen der Cloud-Provider und Rechenzentren von Synthetic-Monitoring-Anbietern gesperrt. Deshalb solltet ihr auch folgende Frage berücksichtigen:
Könnt ihr mit dem Synthetic-Monitoring-Tool Tests von Standorten aus durchführen, die von euren Mitbewerbern nicht blockiert werden?
Ein weiterer Grund, warum manche Sicherheitstools Synthetic-Monitoring-Tests verhindern, ist der User Agent. Unterscheidet sich dieser vom User Agent eines echten Browsers, kann dies dazu führen, dass der Testzugriff blockiert wird. Dies wirft unweigerlich die nächste Frage auf:
Könnt ihr den User Agent so anpassen, dass euer Test-Tool nicht als solches erkannt wird?
Wenn ihr diese Hürden überwunden habt und in der Lage seid, Performance- und User-Experience-Daten von Mitbewerbern zu erfassen, kann es losgehen. Im Hinblick auf den Vergleich der Ergebnisse mit denen eurer eigenen Website solltet ihr einige Aspekte beachten:
Hier seht ihr ein Dashboard in Splunk Synthetic Monitoring für den Performance-Vergleich mehrerer Unternehmenswebsites:
Damit ihr eure Synthetic-Monitoring-Lösung optimal nutzen könnt, solltet ihr Folgendes im Hinterkopf behalten:
Ein Hauptproblem beim Synthetic Monitoring ist die Gültigkeit von Annahmen, die in ein Anwendungsszenario einfließen. Anders ausgedrückt: Wir wissen nicht mit Sicherheit, was ein realer Benutzer tun würde. In der Realität könnte es zu unerwartetem Verhalten kommen, und nicht jedes mögliche Verhaltensszenario kann von der oben beschriebenen Komponente zur Szenariogenerierung simuliert werden.
Für dieses Problem gibt es aber eine gute Lösung: die Kombination von Synthetic Monitoring und Real User Monitoring. Damit habt ihr Daten sowohl aus synthetischen Tests als auch aus Tests mit echten Benutzern zur Verfügung und könnt eine fundierte und realistische statistische Analyse durchführen.
Splunk Synthetic Monitoring überwacht die Performance und User Experience clientseitig und hilft euch so bei der Optimierung eurer Website. Diese Vorgehensweise könnt ihr sogar in eure CI/CD-Workflows einbinden, um manuelle Optimierungsschritte zu automatisieren und die Performance unternehmensweit zu operationalisieren.
Ihr habt einen Fehler entdeckt oder eine Anregung? Bitte lasst es uns wissen und schreibt eine E-Mail an ssg-blogs@splunk.com.
Dieser Beitrag spiegelt nicht zwingend die Position, Strategie oder Meinung von Splunk wider.
Weltweit führende Unternehmen verlassen sich auf Splunk, ein Cisco-Unternehmen, um mit unserer Plattform für einheitliche Sicherheit und Observability, die auf branchenführender KI basiert, kontinuierlich ihre digitale Resilienz zu stärken.
Unsere Kunden vertrauen auf die preisgekrönten Security- und Observability-Lösungen von Splunk, um ihre komplexen digitalen Umgebungen ungeachtet ihrer Größenordnung zuverlässig zu sichern und verbessern.