End-to-End-Monitoring mit Benutzersimulation für GUIs

mihtiander, 123RF

Perspektivwechsel

Al'exa ist ein Open-Source-Python-Modul, mit dessen Hilfe sich grafische User Interfaces (GUIs) durch Simulation von Benutzereingaben testen und überwachen lassen.
Sicher verstaut - Deduplizierung spart Platz, Cloud-Backup für Windows, Areca sichert kostenlos. ADMIN 01/14 stellt Backups für Profis mit und ohne Cloud ... (mehr)

Über die letzten 15 Jahre hat sich die IT rasant weiterentwickelt und ist immer komplexer geworden, weil immer mehr Abhängigkeiten zwischen verschiedenen Komponenten entstanden sind. Hardware und Betriebssysteme, Applikationen und Middleware, Hypervisoren, Infrastrukturkomponenten, Storage-Systeme, Netzwerktechnik, Serverdienste – all das greift heute ineinander und baut aufeinander auf. Daraus folgt, dass all das auch zu überwachen ist, um im Fehlerfall schnell reagieren zu können.

Entsprechend wuchs über die Jahre die Anzahl von Monitoring-Systemen im proprietären, aber auch im Open-Source-Bereich. Systeme wie Nagios, Zabbix, OpenSNMP, Icinga und Shinken haben sich dabei längst etabliert. Alle diese Lösungen versuchen Ausfälle zu erkennen, die Verfügbarkeit zu messen und anhand von Modellen die grundlegende Ursache von Folgefehlern zu trennen (Root Cause Analysis). Nicht immer reicht dies jedoch aus, denn das herkömmliche Rechenzentrums-Monitoring misst zwar die Performance der einzelnen IT-Komponenten, berücksichtigt aber nicht die Performance und Verfügbarkeit der IT-Services aus dem Blickwinkel des End Users oder Kunden.

Das traditionelle Monitoring fokussiert sich somit auf eine horizontale Sichtweise. Ihr Vorteil ist, dass der Ausfall einer Komponente damit sofort erkannt wird. Der Nachteil: Haben einzelne Anwender ein Problem, beispielsweise mit der Performance, ist nicht sofort ersichtlich, wer wann und in welchem Maß davon betroffen ist. Solche Informationen liefert dagegen ein End-to-End-Monitoring. Dabei wird die zu überwachende Applikation aus dem Blickwinkel der User auf Verfügbarkeit und Performance hin getestet – und nicht mehr nur aus dem Blickwinkel des Rechenzentrums.

Was tun mit Terminal-Servern?

Im Bereich Webapplikationen gibt es bereits unterschiedliche Lösungen im Open-Source-Bereich, die einen solchen Ansatz verfolgen. Als Beispiel sei SeleniumHQ [1] genannt. Solche Lösungen haben ihren Ursprung dabei oftmals im Bereich Quality Assurance, um bei der Software-Entwicklung von Produkten Regressionstests durchführen zu können. Vielfach eignen sich diese Tools auch für das operative Monitoring von Anwendungen (wie auch SeleniumHQ, das unter anderem auch Web-Automations-Tests beherrscht). Offen bleibt in diesem Zusammenhang jedoch, was passiert, wenn die zu überwachende Applikation keine Webapplikation ist, oder diese über einen Terminal-Server beziehungsweise über Citrix zur Verfügung gestellt wird.

Ein weiterer, oftmals nicht berücksichtigter Aspekt ist das Monitoring von nativen Applikationen auf Windows oder von Legacy-Applikationen, die auf Mainframes laufen, und über Terminal-Emulatoren von den Anwender bedient werden. Häufig sind genau diese Anwendungen Business-kritisch. Bei komplexen ERP-Umgebungen besteht zudem die Herausforderung, die Performance und Verfügbarkeit für die Anwender an mehreren weltweit verteilten Standorten sicherzustellen.

Das Al'exa-Projekt

Es waren dies die wesentlichen Überlegungen, die dazu führten, das Projekt Al'exa ins Leben zu rufen. Entwickelt wurde dabei eine Engine, die in der Lage ist, exakt wie ein User mit unterschiedlichen Anwendungen zu interagieren – über die Tastatur, die Maus oder die Erkennung von Texten, Bildern und Menüelementen. Die Al'exa-Engine simuliert dabei die Interaktion mit Anwendungen wie ein Anwender und zeichnet die Zeiten für jede Handlung auf. Damit wird eine Überwachung jeder einzelnen Aktion ermöglicht. Genauso wird aber auch die Summe aller einzelnen Zeiten eines gesamten Testszenarios ausgewertet.

Die Engine ist außerdem so konzipiert, dass Änderungen in der Anwendung nicht zwangsläufig eine Neuentwicklung des Test-Cases erfordern. Stattdessen findet die Engine die Elemente auch an anderen Positionen wieder. Dafür sucht Al'exa die Objekte auf dem Bildschirm und merkt sich ihre neue Position automatisch.

Die Simulation bezieht alle Komponenten ein, mit denen die User umgehen. Die Verfügbarkeit wird somit nicht aus dem Headquarter gemessen, sondern die Al'exa-Engine stellt sicher, dass alle Core-Business-Anwendungen, unabhängig von der Technologie ihrer Bereitstellung, nach dem Modell des End-User-Monitorings berücksichtigt werden (Abbildung 1).

Abbildung 1: Eine intelligente User-Simulation, die exakt dort angesiedelt ist, wo die Anwender auch wirklich agieren.

Al'exa verhält sich somit genau so wie ein intelligenter User und ist auch genau dort aktiv, wo die Anwender im wirklichen Leben wirklich agieren. Die Engine misst die Performance ausschließlich aus dem Anwenderblickwinkel. In dieser Simulation sind somit Latenzzeiten des Netzwerkes sowie der Anwendung wie auch Verzögerungen eines möglichen Terminal-Servers enthalten. Al'exa kann die Anwendungen in Intervallen prüfen und erkennt, sobald bestimmte Schwellwertüberschreitungen bei einzelnen Aktionen zu verzeichnen sind. Die werden dem zentralen Monitoring-System als Status »warning« oder auch »critical« mit sämtlichen Details zu den zugrunde liegenden Performance-Messungen mitgeteilt (Abbildung 2).

Abbildung 2: Sämtliche Performance-Daten werden an das zentrale Monitoring-System weitergegeben.
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021