Allgemein
Informationen
-
Der Monitoring-Dienst soll die automatisierte Überwachung der Komponenten des PLANTA-Dienstes ermöglichen.
-
Als eigenständige Komponente fragt er bei Bedarf (= HTTP-Abfrage) die Komponenten nach Statusinformationen ab und generiert ein dementsprechendes HTML-Dokument, das den Status jeder überwachten Komponente anzeigt.
-
Durch die HTTP-basierte Schnittstelle ist die Anbindung an verschiedene Überwachungssysteme möglich.
-
Diese Dokumentation soll den Betreiber der PLANTA-Software in die Lage versetzen, die Monitoring-Komponente einzurichten und zu betreiben.
-
Des Weiteren soll durch Beschreibung der Abfragesyntax und der Ausgabeformate die Nutzung der Statusinformationen in einer automatisierten Überwachungsinfrastruktur ermöglicht werden.
Installation
Details
-
Im Server-Release-Paket kann nun auch die Monitoring-Komponente bei der Installation ausgewählt werden.
-
Werden die Monitoring-Komponente und der Server bei der Installation gleichzeitig ausgewählt, werden die Parameter für das Datenbank- und das PLANTA-Server-Plug-in bereits eingetragen, sodass nur noch die folgenden Einstellungen vorgenommen werden müssen:
-
Port der Monitoring-Komponente: Auf diesem Port ist die Web-Schnittstelle zu erreichen.
-
Netzwerkschnittstelle: Kann im Normalfall auf dem Default-Wert
0.0.0.0(von überall erreichbar) verbleiben. -
Name des Dienstes: Hier ist ein eindeutiger Name vonnöten (Bitte vor allem bei Installation mehrerer Instanzen beachten!).
-
-
Wenn der Server mitinstalliert wird, ist der Port für die Monitoring-Schnittstelle dort zu vergeben.
-
Anderenfalls müssen das Installationsverzeichnis des bereits installierten PLANTA-Servers und ein Port für die Monitoring-Schnittstelle angegeben werden, da in diesem Fall eine Einstellung des PLANTA-Servers benötigt wird.
Konfiguration
Verbindungs- und Plug-in-Konfiguration mittels monitoring_configuration.xml
Information
-
Die Konfiguration wird in XML-Syntax durchgeführt.
Details
-
Beim Start der Monitoring-Komponente wird eine Prüfung der Syntax anhand der XML-Schema-Datei
monitoring_configuration.xsdvorgenommen.-
Auf Syntax-Fehler wird in der Log-Datei hingewiesen.
-
-
In dem Hauptknoten
Configurewird über das Attributdirectorydas Plug-in-Verzeichnis festgelegt.-
Die Standardeinstellung sollte hier beibehalten werden:
-
<Configure directory="plugins">
-
Der intern verwendete Web-Server kann über den Knoten
Serverbzw. dessen Attributehostundportkonfiguriert werden. -
Soll der Monitoring-Dienst nur lokal erreichbar sein, verwendet man
"localhost", ansonsten ermöglicht"0.0.0.0"den Zugriff über alle Netzwerkschnittstellen.
<Server host="localhost" port="9092"/>
<Server host="0.0.0.0" port="9092"/>
-
Das URL-Schema ist konfigurierbar.
-
Hierzu existiert das Element
UrlConfig, welches im nachfolgenden Konfigurationsauszug exemplarisch gezeigt wird. -
Im Attribut
table_patternwird ein Präfix konfiguriert, das für jede Seiten-URL des Monitoringdienstes gleich ist.-
Das Abfragetrennzeichen "
?" kann nur hier verwendet werden.
-
-
Das Attribut
json_suffixsteuert das Suffix, mit dem die JSON-Ansicht erreicht werden kann. -
Der Platzhalter "page" verweist auf die Knoten "Page".
-
Für die Kategorien und Komponenten existieren jeweils Platzhalter, welche durch den Namen ersetzt werden.
<UrlConfig table_pattern="/monitoring?monitoring[page]" json_suffix="/view=json">
<Page id="overview" url=""/>
<Page id="detail" url="=detail"/>
<Page id="category" url="=[category]"/>
<Page id="component" url="=component&amp;component=[component]"/>
</UrlConfig>
-
Im Knoten
PlugInwird ein Plug-in konfiguriert, das die Erreichbarkeit einer Komponente abprüft. -
Es erhält die Zuordnung zu einer Kategorie, unter der das Plug-in gruppiert werden kann.
-
Die Timeout-Einstellungen ermöglichen die Erreichbarkeit der Monitoring-Komponente auch bei langsamer oder gar blockierter Rückmeldung des Plug-ins.
-
Zusätzliche Konfigurationsknoten existieren zur internen Konfiguration des Plug-ins; dies ist Plug-in-spezifisch.
<PlugIn filename="planta_plugin" title="PLANTAServer" plugin_data_lifetime="20000" request_timeout="1000" hard_timeout="20000">
<Category>Application</Category>
<PlugInConfig host="127.0.0.1" port="27777"/>
</PlugIn>
Details zu den Attributen plugin_data_lifetime, request_timeout und hard_timeout (alle Werte in Millisekunden):
-
-
plugin_data_lifetime-
Soll eine Komponente bei sehr häufigen oder zeitintensiven Abfragen entlastet werden, cached der Monitoring-Dienst die Daten für die angegebene Zeitspanne.
-
-
request_timeout-
Bei Laufzeiten von Komponentenanfragen, die über der angegeben Zeitspanne liegen, wird der Status
Timeoutgesetzt und die Anfrageergebnisse erst bei erneuter Nutzeranfrage abgerufen.
-
-
hard_timeout-
Wie bei
request_timeout, die Komponentenanfrage wird jedoch abgebrochen.
-
-
-
Ein Plug-in kann auch mehrfach konfiguriert werden, wobei unterschiedliche Namen im
title-Attribut verwendet werden müssen.-
So können mehrere PLANTA-Server-Instanzen oder mehrere Datenbanken überwacht werden.
-
-
Der Auslieferungszustand der Konfigurationsdatei enthält bereits Konfigurationsschemata aller mitgelieferten Plug-ins, so dass diese nur angepasst bzw. kopiert werden müssen.
Plug-in-spezifische Einstellungen
PLANTA-Server
Informationen
-
Zur Nutzung des Plug-ins muss der entsprechende PLANTA-Service für den Monitoring-Dienst konfiguriert sein.
-
Dies ist über die hier beschriebenen Parameter
monitoring,monitoring_interfaceundmonitoring_porterreichbar. -
Entsprechend des Installationsortes bzw. der Konfiguration des PLANTA-Services sind die Attribute
hostundportdes KnotensPluginConfigzu setzen:
<PluginConfig host="<Rechnername/IP des Servers, auf dem PLANTA-Service läuft>" port="<wie in globals.conf - monitoring_port angegeben>" />
Datenbank
Informationen
-
Mit diesem Plugin kann der Status der Datenbank bzw. deren Verwendbarkeit durch den PLANTA-Service über einen Datenbankbenutzer geprüft werden.
-
Die Konfigurationswerte können und sollten der Konfigurationsdatei
hibernate.cfg.xmlentnommen werden. -
host,portundsidentsprechen den drei durch : (Doppelpunkt) getrennten Werten im Text inhibernate.connection.url(Schema: <...>@host:port:sid). -
userundpasswordentsprechen den jeweiligen Werten inhibernate.connection.usernameundhibernate.connection.password. -
licenseerhält den dreistelligen Lizenzschlüssel der Installation. Dieser muss in der DT345 Systemparameter vorhanden sein. -
Beispiel
<PlugIn filename="database_plugin" title="Database" plugin_data_lifetime="20000" request_timeout="1000" hard_timeout="20000">
<Category>Backend</Category>
<PlugInConfig host="orasrv.mycompany.com" port="1521" sid="orasrv" user="PL1" password="secret" license="100" />
</PlugIn>
Logging-Konfiguration mittels logback.xml
Informationen
-
Die Monitoring-Komponente nutzt als Rahmenwerk für Lognachrichten
SLF4J, während als BackendLogbackverwendet wird. -
Konfigurationsdetails sind in der Projektdokumentation von Logback nachzuschlagen.
-
Über die Konfiguration des Schwellwertes kann im Fehlerfall durch erhöhte Verbosität Ursachenforschung ermöglicht werden.
-
Log-Schwellwerte (nach aufsteigender Verbosität sortiert)
-
error > warn > info > debug > trace
-
-
-
Hierzu ist, wie im folgenden Ausschnitt der Konfigurationsdatei, das
level-Attribut des Knotenrootauf einen Schwellwert mit höherer Verbosität zu setzen:
<root level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
Nutzungsdetails
Informationen
-
Auf Informationen zu den Komponenten kann über URLs zugegriffen werden.
-
Die Informationen sind sowohl im HTML-Format (v.a. zur manuellen Betrachtung) als auch im JSON-Format (zur maschinellen Verarbeitung geeignet) abrufbar.
-
Für die JSON-Ausgabe wird das an die URL der HTML-Ausgabe angehängte konfigurierte
json_suffixverwendet (in der Standardkonfiguration/json). -
Im Folgenden werden die Möglichkeiten zur Abfrage und die Ausgabeformate am Beispiel eines auf
localhostmit Port9092konfigurierten Monitoring-Servers erläutert.
Erläuterung des Rückgabeformates
Informationen
-
In der folgenden Tabelle sind die Überschriften der zurückgegebenen HTML-Tabelle bzw. die Schlüssel des in der JSON-Abfrage zurückgegebenen Verzeichnisses für die Komponentenansicht angegeben.
-
Alle anderen Ansichten enthalten eine Untermenge dieser Attribute.
-
Die Übersichtsseite fasst die Attribute State und Component State zusammen, so dass State hier immer NOK ist, wenn eines der Statusattribute NOK ist.
Details
|
Überschrift/Schlüssel |
Rückgabewert |
Beschreibung |
|---|---|---|
|
Title |
Name |
Bezeichnung der Komponente |
|
Description |
Text |
Beschreibung der Komponente |
|
Release Date |
Datum/Zeitstempel |
Freigabe-Zeitstempel |
|
Release Version |
Versionsbezeichnung |
|
|
Build Date |
Datum/Zeitstempel |
Erstell-Zeitpunkt |
|
Build Version |
Versionsbezeichnung |
|
|
State |
OK/NOK/TIMEOUT |
Status der Komponenten-Plug-in-Instanz |
|
Component State |
OK/NOK |
Status der Komponente |
|
Comment |
Text |
Zusatzinformationen, z.B. Exception |
|
Response Time |
Dauer in ms |
Reaktionszeit des Komponenten-Plug-ins |
|
Required System Properties |
Text |
|
|
Start Time |
Zeitstempel |
Start-Zeitpunkt der Komponente, falls vorhanden |
|
Extended |
zusätzliches Verzeichnis |
Enthält weitere Plug-in-spezifische Attribute |
Übersicht
Informationen
-
Konfiguration: Page-ID
overview -
Eine Übersicht über alle Kategorien sowie der darin verwalteten Komponenten erhält man in der Standardkonfiguration durch:
http://localhost:9092/monitoring
-
Der Status der Komponenten ist hier die Hauptinformation
-
Die Aktualität dieses Status ist hier mit angegeben, um die Aussagekraft bewerten zu können.
Detailübersicht
Informationen
-
Konfiguration: Page-ID
detail -
Detailliertere Information zu allen Komponenten sind über
/monitoring=detailabrufbar:
http://localhost:9092/monitoring=detail
Kategorieübersicht
Informationen
-
Konfiguration: Page-ID
category- die Variable[category]wird dann mit dem Kategorienamen ersetzt -
Die Kategorieübersicht zeigt detaillierte Informationen über alle in der Kategorie verwalteten Komponenten an (hier für die Kategorie Application gezeigt):
http://localhost:9092/monitoring=Application
Komponentenübersicht
Informationen
-
Konfiguration: Page-ID
component- Die Variable[component]wird dann durch den Komponenten-Namen ersetzt -
Soll nur eine einzelne Komponente überwacht werden, bietet der Aufruf der Komponentenansicht alle erfassten Informationen (hier für die Komponente mit Namen PLANTAServer gezeigt):
http://localhost:9092/monitoring=component&component=PLANTAServer