Automatisiertes Testen der XenApp-Performance (AAM)


Wer hätte nicht gerne eine EMail oder Warnung, *bevor* die Performance des XenApps / der Citrix Terminalserver-Farm den User zum Anruf bewegt? Eben. Dass es dafür ein Tool aus dem Dunstkreis von EdgeSight gibt, dass prinzipielle jeder einsetzen darf, der XenApp in der Enterprise- oder Platinum-Edition lizenziert hat, ist aber scheinbar eher unbekannt. Deshalb (und um einen Fehler nachzustellen, der mir in einem CXA-301 Lab begegnete – Danke an Sam!) geht es in diesem Blogbeitrag heute um “Active Application Monitoring” (AAM).

Kapitel 1: die Installation

Das AAM kann von der XenApp DVD installiert werden – dort befindet es sich im “\Service Monitoring\Installers\Server”-Verzeichnis als “EdgeSight Active Application Monitoring.msi”.
2012-12-06_10h24_29
Vor der Installation sollte das J#.Net Paket aus dem \Support-Ordner installiert werden umd die Unterstützung für die direkte Ansprache des XML-Dienstes zu erhalten, die Installation selbst kann dann mit “Custom” angepasst werden.
2012-12-06_10h25_48
In der angepassten Installation lässt sich der WebInterface-Connector auswählen, der beim typischen Setup nicht vorselektiert wäre.
2012-12-06_10h26_12
Der nachfolgende Dialog verlangt die Eingabe eines Kennworts – dies soll den Launcher-Dienst schützen, so dass er lediglich Instruktionen von Controllern entgegennimmt, die über das passende Kennwort verfügen – zu Demozwecken habe ich hier “Password1” eingetragen.
2012-12-06_10h26_36
Next: die Installation beginnt.
2012-12-06_10h27_05
Nach der Installation folgt die übliche Erfolgsmeldung.
2012-12-06_10h28_01

Kapitel 2: Konfiguration des Controllers

Nach der Installation lässt sich das Programm über den Link zum “AAM Controller” aus dem Startmenü starten.
2012-12-06_10h31_12
Das daraufhin einzugebende Kennwort muss das gleiche sein, was bei der Installation des Launcher-Dienstes angegeben wurde. Hierauf spielt auch die Verknüpfung “PasswortReset” an, die das für den Launcher-Dienst hinterlegte Kennwort ändert.
2012-12-06_10h31_33
Im Hauptfenster des Controllers sollte nun zuerst die Verbindung zum EdgeSight Server eingetragen werden – sie wird benötigt, falls ein Test überhaupt nicht starten kann (Volllast auf den Servern, alle XenApp-Server down etc.)  und nicht bloß schlechte Performancewerte melden möchte.
2012-12-06_10h31_54
In Punkt 1 wird der EdgeSight (for XenApp) Server eingetragen (netbios oder fqdn), gefolgt von dem verwendeten Webserverport. Ein Test (Punkt 2) prüft, ob die Verbindung erfolgreich hergestellt werden kann – die Erfolgsmeldung ist in Punkt 3 dargestellt.
2012-12-06_10h32_39
Danach wird in dem (bereits erstellten) Test ein neues Skript angelegt, welches später die Verbindungsdaten und Ablaufinstruktionen enthält.
2012-12-06_10h33_20
In den Eigenschaften des Skripts wird die verwendete Bildschirmauflösung festgelegt (sie sollte in etwa der von den Usern verwendeten Auflösung entsprechen). Im unteren Teil des Dialogs wird festgelegt, in welchem Intervall und an welchen Tagen der Test automatisiert laufen soll.
2012-12-06_10h33_53
Nun wird ein Testuser in dem Programm benannt, die zuvor jedoch im Active Directory erstellt werden müssen (eine passende Batch-datei habe ich unter http://seetricks.blogspot.de/2011/10/demouser-anlegen.html abgelegt).
2012-12-06_10h35_55
Ok, langsam – das Anlegen des Users zieht ein paar weitere Entscheidungen nach sich:
Punkt 1: “Connect from” bezeichnet den Netbios-Namen, den FQDN oder die IP-Adresse der Maschine, die den Lasttest tatsächlich durchführt (in diesem Beispiel der Controller-PC selbst, daher “localhost”).
Punkt 2: Benutzernamen des Testusers
Punkt 3: Passwort des Testusers
Punkt 4: hier wird die Domäne des Testusers eingetragen
Punkt 5: Hier kann entweder eine statische ICA-Datei angegeben werden (z.B. erstellt mit dem Citrix Tool QuickLaunch, zu finden unter CTX122536) . Ich wähle in diesem Demo den XML-Dienst.
Punkt 6: Über “Browse” lässt sich dann, wie im nächsten Dialogfenster dargestellt, die zyklisch zu testende Anwendung auswählen
Punkt 7: Der Server, dessen XML-Port angefragt wird
Punkt 8: der XML-Port des XenApp Servers
Punkt 9-11: die Credentials des Testbenutzers
Punkt 12: fragt mit den Daten aus Punkt 7-11 die Liste der freigegebenen Ressourcen des Testbenutzers ab.
Punkt 13: Auswahl der zu testenden Anwendung
Punkt 14: Schließen des aktuellen Dialogfensters und Übernahme der Daten in das vorige Dialogfenster (welches dann mit OK zu bestätigen ist)
2012-12-06_10h46_06
Eine kleine Eigenart des Programms – der User, mit dem die nachfolgende Aufzeichnung gestartet werden soll, wird durch einen Mausklick auf das Monitorsymbol aktiviert.

Kapitel 3: Aufzeichung des Skripts

Durch Auswahl des Menüpunkts Test\Record wird eine Sitzung mit den in Kapitel 2 festgelegten Parametern gestartet – in meinem Beispiel also als Demo\Nurse1 mit Notepad.
2012-12-06_10h46_39
Die aufgebaute Sitzung erscheint (vorausgesetzt ein Receiver ist installiert).
2012-12-06_10h47_10
Nun kann die Applikation passend bedient werden. Alle Schritte, Mausklicks etc. werden aufgezeichnet – auch Passwörter.
2012-12-06_10h48_07
Nach der Aufzeichnung wird die Sitzung auf normalem Weg beendet.
2012-12-06_10h48_20
Hierbei ist daran zu denken, dass das spätere Skript in gleicher Weise wieder und wieder erneut durchlaufen können muss. Das Speichern einer simplen Datei wird also später die Frage im Skript aufwerfen, ob die Datei überschrieben werden darf. Zur Erinnerung: Das Skript kann diese Entscheidung nicht treffen – lediglich das Aufgezeichnete kann erneut abgearbeitet werden.
2012-12-06_10h48_41
Wenn das Aufzeichnen des Skripts beendet ist, sind die einzelnen Aktionen im Controller-Programm unterhalb des Instructions-Knoten aufgeführt.
2012-12-06_11h42_08
Zum Strukturieren der Aufzeichnung – und um eine bestimmte Sequenz zeitlich erfassbar zu machen, wird ein Ordner (“Folder”) benötigt. Dieser wird einfach mit einem Rechtsklick oberhalb des angeklickten Objekts erstellt.
2012-12-06_11h50_46
In den neu erstellten Ordner können nun markierte Zeilen aus dem Skript verschoben werden (Achtung, ein Verschieben innerhalb eines Fensters kann ggf. nur eine Umsortierung der aufgezeichneten Schritte bedeuten! Haben wir schon über das Speichern geredet?)
Besser ist hier allemal ein Verschieben über die Fenstergrenze von rechts nach links.
2012-12-06_11h51_25
Der Ordner wird im Folgenden in einen “Monitoring Point” gewandelt – nur diese Monitoring Points sind später aus EdgeSight for XenApp bezüglich ihrer Durchlaufdauer erfassbar.
2012-12-06_11h51_52
Hierzu bekommt der Monitoring Point einen Namen. Dieser sollte später inklusive des führenden Backslashes in EdgeSight for XenApp hinterlegt werden.
2012-12-06_11h52_18

Kapitel 4: Einrichten der Alarmmeldung in EdgeSight for XenApp

Unter Configure/Rules/New Alert Rule kann nun eine neue Alarmmeldung erzeugt werden.
2012-12-06_12h10_45
Als Typ für den Alarm ist “XenApp Performance Alert” auszuwählen.
2012-12-06_12h11_11
Die Unterrubrik für diese Demo ist “Application Response Time” – falls ein Test komplett fehlschlägt, also abbricht oder nicht einmal gestartet werden kann, ist “Application Response Failure” zu wählen.
2012-12-06_12h11_25
Neben einem Namen ist hier vor allem der “Test name” und der Monitoring Point anzugeben. Der Monitoring Point entspricht dem zuvor angelegten “Ordner”  - allerdings mit dem führenden Backslash! Der “Test Name” ist der Dateiname, unter dem der komplette Test inklusive Skript (erstellt in Kapitel 1) angelegt und gespeichert wurde. “Script name” entspricht dem Namen des Skripts.
Ich habe in diesem Beispiel die Durchlaufzeit auf unrealistische zwei Sekunden gestellt, so dass die Ausführung des Skripts auf alle Fälle einen Alarm provoziert. In der Praxis ist hier der maximale (unter normaler Last) ermittelte / erwünschte Wert für eine solche Sequenz einzutragen. Sind auf unbelasteten Servern also 10 Sekunden normal, auf belasteten Servern 15 Sekunden der Mittelwert und ist 30 ein Wert, der nicht tragbar ist, sollte der Alarm auf 28 oder 30 Sekunden eingestellt werden.
2012-12-06_12h14_06
Durch einen Klick auf Next erscheint der nächste Dialog, der für Dokumentationszwecke die Einstellungen zusammenfasst.
2012-12-06_12h14_49
Die Einrichtung des Alarms ist hiermit eigentlich beendet – allerdings fehlt noch die Zuordnung zu einem Department, um die darin beheimateten XenApp Server auf den neuen meldepflichtigen Alarm hinzuweisen.
2012-12-06_12h14_59
Um nicht bis zum nächsten Lauf der Konfigurationsprüfung warten zu müssen, kann unter Configure/Agents/Run Worker der (oder die) XenApp Server ausgewählt werden (Punkt 1 und 2), die den “Configuration Check”-Worker außerplanmäßig ausführen sollen (Punkt 3 und 4).
2012-12-06_12h17_27
Wenige Minuten, nachdem der Test auf dem Controller gestartet wurde – und abhängig vom eingestellten Intervall des Tests, erscheint die erste Alarmmeldung in der EdgeSight for XenApp WebConsole, wahlweise unter Monitor/Farm Monitor oder…
2012-12-06_12h28_32
…unter Alert list (ohne Flash). Durch Binden einer Aktion an die Alert Rule eines Departments könnte EdgeSight auch eine EMail oder einen SNMP-Trap senden, oder wahlweise auch ein Skript/Exe-Datei ausführen.
2012-12-06_12h32_09

Have fun!

Kommentare

  1. Hallo Daniel,
    erst mal danke für den Beitrag. Habe es ganz interessiert gelesen und auch ausprobiert.
    Leider funktioniert dieses Vorgehen bei uns nicht.
    Du hast geschrieben, dass man mit einer XenApp Enterprise oder einer Platinum das AAM nutzen kann. Jedoch bekomme ich beim Versuch einen Record zu erstellen, folgenden Fehler:
    "Connect Failed. Could not connect to EdgeSight Agent. Agent not present or in Basic Mode". Die Fehlermeldung stimmt auch soweit, da wir den Basic Agent nutzen. Jedoch kann man laut Citrix, mit der XenApp Enterprise Lizenz nur den Basic Agent nutzen: http://support.citrix.com/proddocs/topic/edgesight54/es-feature-by-agent-type.html

    Fehlt in unserer EdgeSight Umgebung evtl. noch etwas oder ist es dann technisch doch nicht möglich mit der Enterprise Lizenz?

    Danke dir und weiter so!
    MFG KW

    AntwortenLöschen
    Antworten
    1. Hallo KW und Entschuldigung, falls der Post falsche Erwartungen geweckt hat. AAM ist ein SpinOff / reduzierte Variante von Citrix EdgeSight for LoadTesting (ESLT). Und dieses (ESLT) ist laut http://support.citrix.com/proddocs/topic/edgesight-loadtest-38/es-install-edgesight-licensing.html sowol für XenApp als auch XenDesktop jeweils ab Enterprise (also auch in Platinum) enthalten - das hat mich wohl dazu verleitet anzunehmen, dass die funktionsreduzierte, teilautomatisierte Variante ebenfalls ab der Enterprise Edition verfügbar sei. Ich habe den Post korrigiert - den Fehler allerdings sichtbar hinterlassen.
      Danke für das Feedback!

      Löschen

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

Auf NFS Shares mit Windows zugreifen

Citrix Default Passwords

Lokales ISO Repository im XenServer anlegen