AutoIT ist eine sehr mächtige Windows Anwendung, mit der komplexe Macros und Abläufe automatisiert werden können. Stark vereinfacht dient AutoIT vor allem der Simulation von Tastatureingaben und Mausklicks. Die Software läuft ab Windows NT aufwärts und bietet eine Scriptsprache zur Erstellung der Macros. AutoIT enthält sowohl einen Interpreter, als auch einen Compiler, mit dem ausführbare exe Dateien erstellt werden können. Dadurch können die Macros auch auf Computern ausgeführt werden, auf denen AutoIT selbst nicht installiert ist.
Der Vortrag zeigt, wie man durch die Integration von AutoIT in Nagios, Groundworks oder Icinga auch sehr anspruchsvolle Windows Desktopanwendungen einfach un effizient in die Überwachung einbinden kann.
2. Werbeblock
End-To-End-Monitoring: Motivation
Was ist AutoIt?
Wie funktioniert GUI-Skripting unter Windows?
Auto-It-Skriptsprache
Beispiele
Was funktioniert nicht?
Zeitmessung
Fehler erkennen
Ausblick: Webanwendungen und Webservices
Agenda
3.
4. Die Gründer: Ehemalige Senior Consultants der
Suse Linux AG
Gegründet: Anfang 2004 als GmbH
Von Anfang an bis heute ausschließlich Eigenkapital
Von Anfang an profitabel
Organisches Wachstum
2010: 8 Mitarbeiter
Geschäftsfelder rund um Open Source:
Consulting
Support
Maßgeschneiderte Anpassungen und Entwicklung
Produktverkauf
Fakten
9. Erstes Nagios Referenzprojekt bei Verpoorten 2004:
http://www.dass-it.de/docs/verpoorten_nagios.pdf
Seit 2006 GroundWork OpenSource Monitoring
Partner
GroundWork: Basiert auf Nagios
Eigene WebGUI zur Konfiguration
Drill-Down Statusviewer
Dassmonarch von dass IT: Perl API zur
skriptgesteuerten Konfigurationsautomatisierung
seit GW 6.0 Produktbestandteil
dass IT Referenzen mit GroundWork u.a.:
Daimler Fleetboard
INFOnline
dass IT & Monitoring
11. End-To-End-Monitoring
Probleme beim
klassischen
Monitoring
Was tun?
Protokolle, Prozesse, Ports – für den Anwender zählt nur die
Anwendung!
Monitoring von Prozessen und Ports prüft nur die
Serverseite und eventuell nur einen Bruchteil der
Serverfunktionalität
Proprietäre Protokolle lassen sich schwer prüfen
auch bei Standard-Protokollen wie HTTP lässt sich die
Applikationslogik nur schwer testen
Clientseite fehlt völlig
die Anwendung muss aus Nutzersicht getestet werden
End-To-End-Monitoring per GUI-Skripting
Aufwändig
Applikationsabhängig
Fehleranfällig
trotzdem: oft nützlich und manchmal notwendig!
12. End-To-End-Monitoring per GUI-Skripting
Was ist AutoIt? einfache Skriptsprache zur Fernsteuerung von Windows-
Applikationen
Variablen, Funktionen, Schleifen
BASIC-ähnlich
Freeware (Donation-Ware, nicht OSS!)
http://www.autoitscript.com
aktive Community
Skripte können compiliert werden
Funktionsumfang dynamisch erweiterbar
viele Zusatzmodule
enthält Funktionen zum Erstellen eigener GUIs
13. GUI-Skripting unter Windows
Wie funktioniert's?
Events
Messages
Controls
GUI-Anwendungen unter Windows erhalten vom
Betriebssystem Events für Tastatureingaben, Mausklicks
etc.
Events werden über den Windows-Message-Mechanismus
versendet
derartige Messages können auch von einer Anwendung
zur anderen geschickt werden
der Empfänger des Events kann nicht unterscheiden, ob
das Event vom System oder einer anderen Anwendung
kommt
Windows definiert eine Reihe von Standard-Messages für
Standard-GUI-Elemente (Controls)
Grundlage für Fernsteuerung von Anwendungen
19. In der Praxis viele Probleme beim Fernsteuern
Was funktioniert
nicht?
Die Konsequenz
Viele Anwendungen nutzen eigene GUI-Bibliotheken und
eigene, nicht standardkonforme Controls
Für AutoIt nur ein einziges Control sichtbar
Beispiele:
Mozilla-Applikationen (Firefox, Thunderbird, Sunbird)
OpenOffice
SAPGUI
Anwendungen sind unsauber programmiert und reagieren
nicht erwartungsgemäß auf Events
Beispiele:
VMWare VirtualCenter
Beschränkung auf Tastendrücke/Mausklicks
Trial-and-Error
21. Prüfen auf Fehler
Timeouts
Prüfen von Inhalten
$result=WinWait("Notepad","",60)
if $result==0 then
ReportError()
else
ReportOk()
endif
$t = ""
while $t <> "expected text"
$t = ControlGetText($window, "",
$control)
Sleep(1000)
wend
22. Anbindung an das Monitoring-System
Wer ruft wen auf? Agent ruft AutoIt auf
AutoIt ruft ein weiteres Programm mit Parametern auf
AutoIt ruft eine Funktion aus einer DLL auf
23. Performancemessung von Webanwendungen
Funktioniert's?
Der bessere Weg
AutoIt kann prinzipiell auch Webbrowser fernsteuern
Ansteuern von Eingabefeldern, Buttons schwierig, da keine
Standard-Controls, wechselnde Ids
Möglich, aber nicht zu empfehlen
Besser spezielle Tools nutzen: Selenium
24. Monitoring mit Selenium
IDE Plugin für Firefox
Record and replay von
Websitzungen
Eigene Scriptsprache
Performance Messungen
Fernsteuerbar
In eigene Nagios Plugins
integrierbar
Ermöglicht Monitoring
kompletter Webapplikationen
Bis auf …
Webapplikationen
25. Monitoring von SOAP, REST u.a.
Webservices mit soap UI
GUI zur Definition von Testcases und
ganzen Testszenarien
WSDL Browser
Testgerüst automatisch aus WSDL
erzeugen
Ablauf interaktiv oder ferngesteuert per
Skript
Performance Messungen
Einbindung in eigene Nagios Plugins
Daimler Fleetboard überwacht die eigene
SOAP Schnittstelle mit soap UI und
GroundWork
Webservices
26. Kontakt
dass IT GmbH
Händelstr. 25-29
50674 Köln
Telefon: 0221 3565666-0
Fax: 0221 3565666-10
Email: info@dass-it.de
Web: http://www.dass-it.de
Maßgeschneiderte
Linux und
Open Source
Lösungen