ManagementTests

SolarWinds AppOptics im Test: Klarheit in Entwicklung und Administration

Um die Überwachung zu starten genügt es, das Beispiel-Task-File, das bei der Installation des Agenten mitgeliefert wird, an die eigenen Bedürfnisse anzupassen und den Überwachungsdienst neu zu starten. Konkret wechselten wir dazu in das Verzeichnis “\ProgramData\SolarWinds\Snap\tasks-autoload.de\” und kopierten dort die Datei “task-bridge-sqlserver.yaml.example” nach “task-bridge-sqlserver.yaml”. Danach riefen wir die kopierte Datei in einem Editor auf und ersetzten die Zeile “server=localhost;user id=appoptics;password=PLEASECHANGEME;app name=hostagent;log=1;” mit den zu unserer Installation passenden Daten, also “server=localhost;user id=sa;password={Passwort};app name=hostagent;log=1;”. Anschließend starteten wir den Dienst neu. Kurz darauf erschienen die ersten Daten der neuen Überwachungsroutine im Web Interface in einem neu angelegten Dashboard namens “MsSQL Overview”. Zu den Informationen, die das Plugin lieferte, gehörten unter anderem die Zahl der Instanzen, die Datenbankgrößen, die Datenbank-Transaktionen, die Sessions und der Data File IO. Das Einbinden von bestimmten Anwendungen in die Überwachungsumgebung über Plugins gestaltet sich also sehr einfach und ist schnell erledigt.

Das Default-Dashboard der SQL-Server-Installation (Screenshot: IT-Testlab Dr. Güttich)

Im nächsten Schritt banden wir nun noch weitere Applikationen in AppOptics ein und zwar – wie gesagt – eine Apache-Installation, einen Docker-Host und einen IIS. Das Vorgehen dabei ist immer genau das Gleiche: Beispielkonfigurationsdatei kopieren und anpassen (das war bei Apache und Docker noch nicht einmal erforderlich, hier funktionierte das Monitoring Out-of-the-Box mit den Standardeinstellungen) und den Dienst neu starten. Da sich diese Herangehensweise relativ simpel gestaltet und zudem in der Dokumentation für alle Plugins genau beschrieben wird, gehen wir an dieser Stelle nicht genauer darauf ein. Es genügt zu sagen, dass beim Apache Webserver Informationen wie Abfragen, pro Sekunde übertragene Bytes, Prozesse, Uptime und ähnliches im dazugehörigen Dashboard erschienen. Beim IIS waren es unter anderem Verbindungen, Anfragen, Speicherauslastung und Netzwerkstatistiken für den Webserver, die Anwendungs-Pools und die Webseiten. Und bei Docker konnten wir uns über Dinge wie die Zahl der Container, die laufenden, pausierten und beendeten Container, die CPU- sowie Speichernutzung nach Image und ähnliches informieren.

Das Einbinden weiterer Dienste

Möchte man Dienste in die Überwachungsumgebung integrieren, für die kein Plugin existiert, muss man nach “Add Service” wechseln und dort die Sprache auswählen, unter der der jeweilige Dienst läuft. Hierbei stellt AppOptics das .NET Framework, .NET Core, GO, Java, Node.js, PHP, Python, Ruby und Scala zur Verfügung. Nach der Auswahl der Sprache kommt die Wahl des verwendeten Betriebssystems an die Reihe (Linux oder Windows). Im nächsten Schritt können die zuständigen Mitarbeiter dem Service einen Namen geben und danach den Agenten für die betroffene Sprache und das jeweilige Betriebssystem herunterladen. Der Rest läuft dann wieder ab, wie beim Einrichten der Client-Software. So laden die Verantwortlichen beispielsweise einen Java-Client für Windows herunter, installieren diesen und geben während der Installation das Token an, das die Webseite bereitstellt, um den Dienst zu identifizieren. Anschließend geht es daran, die Anwendung so zu konfigurieren, dass sie den AppOptics-Agenten nutzt. Die konkreten Schritte hierzu sind für alle unterstützten Anwendungstypen genau in der Dokumentation aufgeführt, so dass wir an dieser Stelle hierauf nicht genauer eingehen müssen. Zum Schluss muss die Applikation – wie etwa eine JVM – neu gestartet werden, damit sie den Agenten lädt. Kurz darauf erscheinen dann die gesammelten Daten in AppOptics.

Die Informationen, die AppOptics im Dashboard über unsere Docker-Installation anbot (Screenshot: IT-Testlab Dr. Güttich)

Für unseren Test verwendeten wir an dieser Stelle eine Web-basierte Hotel-Buchungs-App, die SolarWinds zu Testzwecken innerhalb von AppOptics als Container zur Verfügung stellt. Um diese App einzurichten und mit AppOptics zu verbinden, müssen die Anwender lediglich eine “docker-compose.yaml”-Datei von AppOptics herunterladen, diese in ein Verzeichnis auf dem Docker-Host legen und in diesem Verzeichnis den Befehl “echo APPOPTICS_TOKEN={Zu verwendendes Token} > .env && docker-compose up -d” ausführen. Den Befehl kann man direkt aus AppOptics herauskopieren, das passende Token ist dann gleich enthalten. Daraufhin lädt das System die Container herunter, startet den Dienst und verbindet ihn auch gleich mit AppOptics. Die Demo-Anwendung generiert selbst Verkehr, lässt sich aber gleichzeitig auch über die URL “http://{Hostname}:3000” nutzen.

AppOptics im Betrieb

Nachdem wir alle zu überwachenden Komponenten in unsere AppOptics-Umgebung integriert hatten, konnten wir uns mit den Funktionen der Software im laufenden Betrieb auseinandersetzen. Die von AppOptics gesammelten Daten sind in erster Linie für den DevOps-Bereich gedacht. Es gibt allerdings viele Unternehmen, in denen die Administratoren gezwungen werden, sich auch mit solchen Daten zu befassen. Deswegen liefert AppOptics gewisse Grunddaten und bei Bedarf ist es möglich, auf die einzelnen Einträge zu klicken und dann tiefergehende Informationen zu erhalten. Irgendwo auf diesem Weg ins Detail hören dann die Daten auf, die die Administratoren interessieren und es fangen die Daten an, die vor allem für die Anwendungsentwicklung eine Rolle spielen.

Ein Beispiel für die Integration einer Java-App mit dem Download des dazugehörigen Clients und dem Token (Screenshot: IT-Testlab Dr. Güttich)

Zu den wichtigsten Funktionen der Software gehören unter anderem Daten der letzten 60 Minuten, die sich bei Bedarf jederzeit mit dem Durchschnitt der letzten Woche oder anderen Zeiträumen vergleichen lassen. Dabei sind alle Traces sichtbar und es besteht die Möglichkeit, beliebige Details zu selektieren. So sehen die zuständigen Mitarbeiter beispielsweise, was beim lokalen Code und was bei den Remote Calls passiert ist. In den grafischen Darstellungen sind die Verantwortlichen zudem jederzeit dazu in der Lage, die präsentierten Zeiträume anzupassen.

Das Dashboard mit Überblicksdaten über die Demo-Applikation (Screenshot: IT-Testlab Dr. Güttich)

Es ist auch möglich, zu visualisieren, welche Komponenten wie viel Zeit in Anspruch nehmen und welche Backtraces vorhanden sind. Es gibt sogar die Option, sich die Dauer spezifischer Prozesse vor Augen zu führen. AppOptics macht also deutlich, wie eine Anwendung genau funktioniert und wo sie verbessert werden kann und liefert eine Übersicht bis hinunter zu sehr spezifischen Fakten. Das System zeigt dabei unter anderem auch Verbindungen an.