Tipps & Tricks - Intrexx Server Monitoring
In diesem Beitrag möchten wir Ihnen die sogenannte JMX-Konsole etwas näher bringen. Mit den Java Management Extensions (JMX) stellt sie eine Technologie zur Verfügung, die es erlaubt, in Java programmierte Anwendungen zu überwachen und zu verwalten. Die verschiedenen Aufgaben übernehmen dabei sogenannte MBeans. Damit bieten sich Administratoren noch umfangreichere Möglichkeiten zur Überwachung und Wartung des Intrexx-Servers.
Aus Sicherheitsgründen ist JMX für Ihr Intrexx-Portal standardmäßig deaktiviert.
In den Portaleigenschaften kann JMX aktiviert werden. Tragen Sie dort einen freien Port zur Kommunikation zwischen der JConsole und dem Intrexx-Server ein. Die Hilfe zu weiteren Einstellungen im Dialog erreichen Sie mit F1. Führen Sie nach den Änderungen einen Portal-Neustart durch.
Zum Start der JMX-Konsole führen Sie die "jconsole.exe"-Datei (Linux: "jconsole.exe bei grafischer Oberfläche, bei Headless per Remote") im Installationsverzeichnis java\packaged\windows\amd64\bin (Linux entsprechend) aus.
Am Anmeldebildschirm melden Sie sich mit "servername:port" an. Benutzername und Kennwort werden bei dieser Verbindung nicht benötigt. Diese Art der Anmeldung sollte nicht dauerhaft eingesetzt werden, da es, wenn Serveradresse und Port bekannt sind, jederzeit möglich ist, eine JMX-Verbindung aufzubauen. Zu Entwicklungs- und Diagnosezwecken ist dies jedoch vertretbar. Wenn Sie die JMX-Konsole also nicht benötigen, dann deaktivieren Sie die entsprechende Einstellung in den Portaleigenschaften und starten Sie den Portaldienst neu.
Im Anschluss an den Aufruf der JMX-Konsole wird das Überwachungsfenster mit diversen Reitern geöffnet. Auf dem ersten Reiter sehen Sie eine Vielzahl an Diagrammen, die verschiedene Werte wie CPU-Auslastung und Anzahl an Live-Threads anzeigen. Die Diagramme werden sekündlich aktualisiert. Damit ist eine genaue Verfolgung der Ressourcenauslastung möglich.
Auf den weiteren Reitern Memory, Threads, Classes und VM-Summary lassen sich zu den entsprechenden Themen weitere Informationen anzeigen und analysieren. Auf dem letzten Reiter "MBeans" finden Sie eine Übersicht über die implementierten MBeans, die standardmäßig in JMX integriert sind. Zusätzlich dazu befinden sich im Ordner "de.uplanet.lucy.server.management" spezifische MBeans, die von der Company Name implementiert wurden und spezielle Portalanalysen und –methoden für Administrationsaufgaben zur Verfügung stellen.
Overview / Memory
In dieser Übersicht können Sie das Speicherverhalten des Servers, ähnlich wie im Systemmonitor, beobachten. In der JMX-Konsole lassen sich diese Werte jedoch exakter ablesen. Der Speicherverbrauch wird in der Regel als Zickzackkurve dargestellt. Die Java-Maschine führt automatische Garbage-Collections durch, um immer wieder ausreichend Speicher frei zu halten. Sie können hier bei Bedarf auch manuelle Garbage-Collections (GC) durchführen, um Speicher freizugeben. Die Infos beinhalten z.B. den aktuellen Speicherverbrauch des Heap, den maximal zugeordneten Speicher für den Heap, maximale Speicherbelegung durch den Heap und Informationen zum Garbage-Collector.
Threads
Bei den Threads interessieren in erster Linie die WebConnectorWorkerThreads. Erkennungsmerkmal ist die Portnummer des Web-Connectors im Threadnamen (z.B. http-nio-0.0.0.0-8102-exec-123, 8102 ist dabei die in den Portaleinstellungen vergebene Portnummer des Web-Connectors). Die Informationen hier können hilfreich bei der Problemsuche sein, falls das Portal im Browser nicht mehr erreichbar ist, der Webserver (IIS / Tomcat) aber korrekt läuft. Idealerweise ist der Status eines WebConnectorThreads auf "waiting" – das heißt er ist bereit, um Anfragen aus dem Browser zu beantworten. In der Grafik wird die aktuelle Anzahl an Live-Threads sowie die höchste Anzahl an Live-Threads seit dem letzten Portaldienststart angezeigt.
Classes
Hier wird die Anzahl der aktuell in den Speicher geladenen Klassen angezeigt, sowie die Anzahl der insgesamt geladenen bzw. entladenen Klassen.
VM Summary
Hier finden Sie Informationen zu Ihrem Portal-Server wie z.B. Uptime, geladene Java-Klassen, Speicherverbrauch, Live-Threads etc
MBeans
Alle MBeans hier zu erwähnen würde den Rahmen des Beitrags sprengen. Im Folgenden werden deshalb einige spezifische Logging-MBeans von der Company Name vorgestellt und erläutert.
de.uplanet.lucy.server.management - Logging
Attribut |
Datentyp |
Beschreibung |
---|---|---|
JdbcTrace |
Boolean |
Wenn true, werden alle an die Datenquelle gestellten Anfragen in die portal log geschrieben. Damit kann die Dauer der Datenbankabfragen in der Logdatei geprüft werden, z.B. wenn bei einem Portal ein Performanceproblem besteht. |
JdbcDumpOnClose |
Boolean |
Wenn true, werden Informationen (Herkunft, Erzeuger etc.) über nicht geschlossene DB-Verbindungen in die portal.log geschrieben. |
ThrowExceptionOn-DeprecatedCall |
Boolean |
Wenn true, wird eine Fehlermeldung beim Aufruf einer deprecated-Methode in die portal.log geschrieben. |
BpeeDumpContext |
Boolean |
Wenn true, werden die Bpee-Kontextvariablen und deren Werte in die portal.log geschrieben. |
Operation |
Beschreibung |
---|---|
logSeparator / logString |
Schreibt Separator oder Text in die portal.log und verbesser damit bei der Fehlersuche die Übersichtlichkeit des Logs. |
logThreadStacks |
Schreibt das Stacktrace der WebConnectorWorkerThreads in die portal.log. Hilfreich, um z.B. die Ursache für einen Portalstillstand im Browser zu ermitteln. |
de.uplanet.lucy.server.management - WebConnector
Attribut |
Datentyp |
Beschreibung |
---|---|---|
Timeout |
Long |
Timeout des Web-Connectors (in ms, default 10 min). |
Running |
Boolean |
Ist der Webconnector aktiv? |
WorkerThreadCount |
Int |
Anzahl der zur Verfügung stehenden Workerthreads. |
AliveWorkerThreadCount |
Int |
Wieviele Workerthreads sind im Moment nutzbar? |
WatchdogInterval |
Long |
Überwacht Threads auf Aktivität. Wenn Timeout erreicht wird, wird der Workerthread recycelt. |
RequestCount |
Int |
Anzahl der offenen Requests. |
BusyCount |
Int |
Anzahl der momentan bearbeiteten Aufgaben. |
LogRequestProcessingTime |
Boolean |
Wenn true, wird die Dauer der Ausführung eines Request vom Browser an den WebConnectorThread in Millisekunden in die portal.log geschrieben. Hilfreich bei der Untersuchung von Performanceproblemen. |
Operation |
Beschreibung |
---|---|
startConnector |
Starten des Web-Connectors |
stopConnector |
Stoppen des Web-Connectors |