... |
... |
@@ -5,52
+5,43 @@ |
5 |
5 |
{{formcycle/}} bietet für das Monitoring des Anwendungsstatus je Server-Typ eine entsprechende Monitoring-Bean an. Diese kann über JMX mit einem dazugehörigen Werkzeug (z.B. //JConsole//) angebunden und abgefragt werden. Die Namen unter der die entsprechenden Beans registriert sind lauten hierbei: |
6 |
6 |
|
7 |
7 |
; Frontend-Server |
8 |
|
-: de.xima.fc:type=FSMonitor,qualifier=<Kontext-Name> |
|
8 |
+de.xima.fc:type=FSMonitor,qualifier=<Kontext-Name> |
9 |
9 |
; Master-Server |
10 |
10 |
: de.xima.fc:type=MSMonitor,qualifier=<Kontext-Name> |
11 |
11 |
|
12 |
|
-Der //qualifier// ist hierbei für eine Parallel-Installation der entsprechenden Server notwendig und entspricht dem Kontext-Namen der Anwendung. Dieser ist hierbei standardmäßig der Namen der war-Datei, kann jedoch über den Kontext-Parameter //XFC_CONTEXT_NAME// innerhalb der //web.xml// angepasst werden. Ebenfalls wird während des Starts des entsprechenden Servers der konkret verwendete Name ausgeloggt. Hierfür kann es notwendig sein, die [[Logging-Einstellungen>>doc:.UserInterface.Logging]] anzupassen. Jede Bean besitzt zudem unterschiedliche Monitoring-Attribute, welche in folgenden Übersichten dargestellt sind: |
|
12 |
+Der //qualifier// ist hierbei für eine Parallel-Installation der entsprechenden Server notwendig und entspricht dem Kontext-Namen der Anwendung. Dieser ist hierbei standardmäßig der Namen der *.war-Datei, kann jedoch über den Kontext-Parameter //XFC_CONTEXT_NAME// innerhalb der //web.xml// angepasst werden. Ebenfalls wird während des Starts des entsprechenden Servers der konkret verwendete Name ausgeloggt. Jede Bean besitzt zudem unterschiedliche Monitoring-Attribute welche in folgenden Übersichten dargstellt sind: |
13 |
13 |
|
14 |
|
-{{table dataTypeAlpha="0" preSort="0-asc" caption="Übersicht über die Eigenschaften des MSMonitor (Master-Server)"}} |
|
14 |
+{{table caption="Übersicht über Eigenschaften MSMonitor (Master-Server)" dataTypeAlpha="0" preSort="0-asc"}} |
15 |
15 |
|= Attribut|=Bedeutung|= Mögliche Werte |
16 |
|
-|running|Gibt an, ob der {{mserver/}} aktiv ist|true/false |
17 |
|
-|db_connected|Gibt an, ob der {{mserver/}} erfolgreich eine Datenbankverbindung herstellen konnte.|true/false |
|
16 |
+|running|Gibt an, ob der {{mserver/}} aktiv ist|true,false |
|
17 |
+|db_connected|Gibt an, ob der {{mserver/}} erfolgreich eine Datenbankverbindung herstellen konnte.|true,false |
18 |
18 |
|fs_connected|Repräsentiert eine Map mit den Namen aller {{fserver case="nom" number="plural"/}} als Schlüssel und als Wert, ob diese mit dem {{mserver case="dat"/}} verbunden sind.|__Schlüssel:__ <Frontend-Server-Name> |
19 |
|
-__Rückgabewert:__ true/false |
|
19 |
+__Wert:__ true,false |
20 |
20 |
|fs_active|Repräsentiert eine Map mit den Namen aller {{fserver case="nom" number="plural"/}} als Schlüssel und als Wert ob diese automatisch verbunden werden soll.|__Schlüssel:__ <Frontend-Server-Name> |
21 |
|
-__Rückgabewert:__ true/false |
|
21 |
+__Wert:__ true,false |
22 |
22 |
|fs_status|Repräsentiert eine Map mit den Namen aller {{fserver case="nom" number="plural"/}} als Schlüssel und dem konkreten Verbindungsstatus als Wert.|__Schlüssel:__ <Frontend-Server-Name> |
23 |
|
-__Rückgabewert:__ CONNECTED,NOT_CONNECTED,ERROR, |
|
23 |
+__Wert:__ CONNECTED,NOT_CONNECTED,ERROR, |
24 |
24 |
RECONNECTING,DISCONNECTING,CONNECTING, |
25 |
25 |
AUTHENTICATING, WAIT_FOR_CONNECTION |
26 |
26 |
|fs_disconnected_count| Gibt die Anzahl der nicht verbundenen {{fserver case="nom" number="plural"/}} an.|Zahlen größer/gleich 0 |
27 |
27 |
|fs_connected_count| Gibt die Anzahl der verbundenen {{fserver case="nom" number="plural"/}} an.|Zahlen größer/gleich 0 |
28 |
|
-|failed_login_count|Gibt die Anzahl der aktuell registrierten fehlerhaften Login-Versuche aus, also wie viele Login-Name sich Cache für die fehlerhaften Versuche befinden.|Eine Zahl größer oder gleich 0. |
29 |
|
-|connect_frontendserver_by_name|Triggert eine Verbindung zum Frontend-Servers per Name an.|__Schlüssel:__ <Frontend-Server-Name>, true/false um Reconnect immer anzustoßen (egal ob Verbindung besteht) |
30 |
|
-__Rückgabewert:__ true/false |
31 |
|
-|connect_frontendserver_by_id|Triggert eine Verbindung zum Frontend-Servers per ID an.|__Schlüssel:__ <Frontend-Server-ID>, true/false um Reconnect immer anzustoßen (egal ob Verbindung besteht) |
32 |
|
-__Rückgabewert:__ true/false |
33 |
33 |
{{/table}} |
34 |
34 |
|
35 |
|
-{{table dataTypeAlpha="0" preSort="0-asc" fullwidth="true" caption="Übersicht über die Eigenschaften des FSMonitor (frontend-Server)"}} |
|
30 |
+{{table dataTypeAlpha="0" preSort="0-asc" fullwidth="true" colWidth="200-" caption="Übersicht über die Eigenschaften des FSMonitor (frontend-Server)"}} |
36 |
36 |
|=Attribut|=Bedeutung|=Mögliche Werte |
37 |
|
-|running|Gibt an, ob der {{fserver/}} erfolgreich gestartet wurde.|true/false |
38 |
|
-|connected|Gibt an, ob der {{fserver/}} mit einem {{mserver/}} verbunden ist.|true/false |
|
32 |
+|running|Gibt an, ob der {{fserver/}} erfolgreich gestartet wurde.|true,false |
|
33 |
+|connected|Gibt an, ob der {{fserver/}} mit einem {{mserver/}} verbunden ist.|true,false |
39 |
39 |
|status|Gibt den konkreten Verbindungsstatus des {{fserver case="gen"/}} an.|CONNECTED,NOT_CONNECTED,ERROR, |
40 |
40 |
RECONNECTING,DISCONNECTING,CONNECTING, |
41 |
41 |
AUTHENTICATING, WAIT_FOR_CONNECTION |
42 |
|
-|failed_login_count|Gibt die Anzahl der aktuell registrierten fehlerhaften Login-Versuche aus, also wie viele Login-Name sich Cache für die fehlerhaften Versuche befinden.|Eine Zahl größer oder gleich 0. |
43 |
|
-|restart|Triggert einen Neustart des Frontend-Servers an.|Keine |
44 |
44 |
{{/table}} |
45 |
45 |
|
46 |
46 |
== JSON-REST-Schnittstelle == |
47 |
47 |
|
48 |
|
-Die JSON-Schnittstelle ist seit Version 6.0.0 zu Gunsten einer separaten Jolokia-Installation entfernt worden. Die für das Monitoring verwendeten Beans sind nachwievor verfügbar. Die JSON-Schnittstelle des Monitorings erlaubte nur lesende Zugriff und war nur über den Anwendungsserver aufrufbar (localhost/127.0.0.1). Falls dies gewünscht ist müsste der Zugriff innerhalb der Jolokia Anwendung konfiguriert werden, weiter Infomationen finden Sie [[hier>>https://jolokia.org/reference/html/security.html#d0e3128||rel="noopener noreferrer" target="_blank"]]. |
|
41 |
+Die für das Monitoring verwendeten Beans sind ebenfalls über eine bereitgestellte JSON-Schnittstelle aufrufbar. Ein möglicher Aufruf sieht hierbei zum Beispiel wie folgt aus: |
49 |
49 |
|
50 |
|
-Ein möglicher Aufruf, nach erfolgter Installation von Jolokia, sieht hierbei zum Beispiel wie folgt aus: |
51 |
|
- |
52 |
52 |
{{info}} |
53 |
|
-[[http:~~/~~/localhost/jolokia/read/de.xima.fc:type=MSMonitor,qualifier=formcycle>>http://localhost/formcycle/monitoring/read/de.xima.fc:type=MSMonitor,qualifier=formcycle]] |
|
44 |
+http://localhost/formcycle/monitoring/read/de.xima.fc:type=MSMonitor,qualifier=formcycle |
54 |
54 |
{{/info}} |
55 |
55 |
|
56 |
56 |
JSON-Antwort: |
... |
... |
@@ -57,33
+57,43 @@ |
57 |
57 |
|
58 |
58 |
{{code language="JSON"}} |
59 |
59 |
{ |
60 |
|
- "request": { |
61 |
|
- "mbean": "de.xima.fc:qualifier=formcycle,type=MSMonitor", |
62 |
|
- "type": "read" |
63 |
|
- }, |
64 |
|
- "value": { |
65 |
|
- "running": true, |
66 |
|
- "failed_login_count": 0, |
67 |
|
- "fs_active": { |
68 |
|
- "localhost": true |
69 |
|
- }, |
70 |
|
- "db_connected": true, |
71 |
|
- "fs_connected_count": 1, |
72 |
|
- "fs_connected": { |
73 |
|
- "localhost": true |
74 |
|
- }, |
75 |
|
- "fs_disconnected_count": 0, |
76 |
|
- "fs_status": { |
77 |
|
- "localhost": "CONNECTED" |
78 |
|
- } |
79 |
|
- }, |
80 |
|
- "timestamp": 1579186291, |
81 |
|
- "status": 200 |
|
51 |
+"timestamp":1440603508, |
|
52 |
+"status":200, |
|
53 |
+"request":{ |
|
54 |
+ "mbean":"de.xima.fc:qualifier=formcycle,type=MSMonitor", |
|
55 |
+ "type":"read" |
|
56 |
+}, |
|
57 |
+"value":{ |
|
58 |
+ "fs_active":{ |
|
59 |
+ "sas":true, |
|
60 |
+ "localhost":false, |
|
61 |
+ "mko":true |
|
62 |
+ }, |
|
63 |
+ "fs_connected":{ |
|
64 |
+ "sas":false, |
|
65 |
+ "localhost":false, |
|
66 |
+ "mko":false |
|
67 |
+ }, |
|
68 |
+ "db_connected":true,"fs_status":{ |
|
69 |
+ "sas":"ERROR", |
|
70 |
+ "localhost":"NOT_CONNECTED", |
|
71 |
+ "mko":"ERROR" |
|
72 |
+ }, |
|
73 |
+ "fs_disconnected_count":3, |
|
74 |
+ "fs_connected_count":0, |
|
75 |
+ "running":true |
|
76 |
+ } |
82 |
82 |
} |
83 |
83 |
{{/code}} |
84 |
84 |
|
85 |
|
-Weitere Informationen zur Abindung des Framework [[Jolokia>>url:https://jolokia.org/||rel="__blank"]] und eine genauere Dokumentation finden sie [[hier>>url:https://jolokia.org/reference/html/||rel="__blank"]]. |
86 |
86 |
|
|
81 |
+Wie erkennbar ist, befindet sich unter dem Kontext der Anwendung das Servlet //../monitoring// welches die eigentliche Interpretation der Beans und deren Aufbereitung in JSON realisiert. Hierfür kommt das Framework [[Jolokia>>url:https://jolokia.org/||rel="__blank"]] zum Einsatz, sodass dieses Servlet entsprechend konfigurierbar und über verschiedene Aufrufe benutzbar ist. Eine genauere Dokumentation hierfür finden sie [[hier>>url:https://jolokia.org/reference/html/||rel="__blank"]]. |
|
82 |
+ |
|
83 |
+{{warning}} |
|
84 |
+Es ist zu beachten, dass die JSON-Schnittstelle des Monitorings nur lesende Zugriffe erlaubt und nur über den Anwendungsserver aufrufbar ist! (localhost/127.0.0.1) |
|
85 |
+{{/warning}} |
|
86 |
+ |
|
87 |
+ |
87 |
87 |
== Nagios-Anbindung == |
88 |
88 |
|
89 |
89 |
Eine Anbindung der Nagios-Monitoring-Anwendung erfolgt über die beschriebene JSON-Schnittstelle. Hierfür muss das Nagios-Plugin [[jmx4perl>>url:http://search.cpan.org/~~roland/jmx4perl/||rel="__blank"]] installiert werden. Dieses erlaubt es Nagios das JSON zu interpretieren und entsprechende Abfragen aufzubauen. Eine genauere Installations-Dokumentation hierfür finden Sie [[hier>>url:https://jolokia.org/tutorial.html||rel="__blank"]]. Anschließend ist es möglich mit dem entsprechenden command des Plugins die Abfragen an die JSON-Schnittstelle zu formulieren. |
... |
... |
@@ -95,7
+95,7 @@ |
95 |
95 |
{{/warning}} |
96 |
96 |
|
97 |
97 |
{{panel title="Command" fullwidth="true" initial="hidden" triggerable="true"}} |
98 |
|
-{{code language="none"}} |
|
99 |
+{{code}} |
99 |
99 |
define command{ |
100 |
100 |
command_name check_jmx4perl |
101 |
101 |
command_line check_jmx4perl --url $ARG1$ --mbean $ARG2$ --attribute $ARG3$ $ARG4$ |
... |
... |
@@ -104,9
+104,9 @@ |
104 |
104 |
{{/panel}} |
105 |
105 |
|
106 |
106 |
{{panel title="Service-Definitionen" fullwidth="true" initial="hidden" triggerable="true"}} |
107 |
|
-Abfrage der Anzahl der am {{mserver case="dat"/}} nicht verbundenen {{fserver number="plural"/}}. Ist diese größer/gleich 1, erfolgt eine Warnung. Ist diese ferner größer/gleich 2, wird diese als kritisch im Nagios interpretiert:<br> |
108 |
|
-<br> |
109 |
|
-{{code language="none"}} |
|
108 |
+Abfrage der Anzahl der am {{mserver case="dat"/}} nicht verbundenen {{fserver number="plural"/}}. Ist diese größer/gleich 1, erfolgt eine Warnung. Ist diese ferner größer/gleich 2, wird diese als kritisch im Nagios interpretiert: |
|
109 |
+ |
|
110 |
+{{code}} |
110 |
110 |
define service{ |
111 |
111 |
use generic-service |
112 |
112 |
host_name localhost |
... |
... |
@@ -117,7
+117,7 @@ |
117 |
117 |
{{/panel}} |
118 |
118 |
|
119 |
119 |
{{panel title="Abfrage des Datenbank-Verbindungsstatus des {{mserver case='gen'/~}~}" fullwidth="true" initial="hidden" triggerable="true"}} |
120 |
|
-{{code language="none"}} |
|
121 |
+{{code}} |
121 |
121 |
define service{ |
122 |
122 |
use generic-service |
123 |
123 |
host_name localhost |
... |
... |
@@ -128,7
+128,7 @@ |
128 |
128 |
{{/panel}} |
129 |
129 |
|
130 |
130 |
{{panel title="Abfrage, ob {{fserver/~}~} localhost mit {{mserver case='dat'/~}~} verbunden ist" fullwidth="true" initial="hidden" triggerable="true"}} |
131 |
|
-{{code language="none"}} |
|
132 |
+{{code}} |
132 |
132 |
define service{ |
133 |
133 |
use generic-service |
134 |
134 |
host_name localhost |
... |
... |
@@ -139,7
+139,7 @@ |
139 |
139 |
{{/panel}} |
140 |
140 |
|
141 |
141 |
{{panel title="Abfrage an {{fserver/~}~}, ob dieser erfolgreich mit einem {{mserver/~}~} verbunden ist" fullwidth="true" initial="hidden" triggerable="true"}} |
142 |
|
-{{code language="none"}} |
|
143 |
+{{code}} |
143 |
143 |
define service{ |
144 |
144 |
use generic-service |
145 |
145 |
host_name localhost |
... |
... |
@@ -155,11
+155,11 @@ |
155 |
155 |
|
156 |
156 |
Eine weitere Möglichkeit um die Anbindung von Nagios von einem anderen Server aus zu ermöglichen, ist der parallele Betrieb von Jolokia und {{formcycle/}} bzw. dem {{fserver case="dat"/}}. Hierfür stellt Jolokia bereits einen in einer eigenen Anwendung gepackten //JavaEE-Agent// zur Verfügung. ([[Dokumentation>>url:https://jolokia.org/reference/html/agents.html#agents-war||rel="__blank"]], [[Download>>url:https://jolokia.org/download.html||rel="__blank"]]) |
157 |
157 |
|
158 |
|
-Dieser besitzt standardmäßig keine Limitierung von Leseoperationen und Steueranweisungen und ist ebenso nicht bezüglich aufrufender Server bzw. IP-Adressen beschränkt. Da dies jedoch ein potentielles Sicherheitsrisiko darstellt, wird es ausdrücklich empfohlen, diese entsprechend der eigenen Server-Topologie und Anforderungen zu konfigurieren. Hierbei ist zum Beispiel anzuraten, den Zugriff lediglich auf den Nagios-Server zu beschränken. Eine ausführliche Dokumentation der Sicherheitsmechanismen von Jolokia finden Sie [[hier>>url:https://jolokia.org/reference/html/security.html||rel="__blank"]]. |
|
159 |
+Dieser besitzt standardmäßig keine Limitierung von Lese-Operationen und Steueranweisungen und ist ebenso nicht bezüglich aufrufender Server bzw. IP-Adressen beschränkt. Da dies jedoch ein potentielles Sicherheitsrisiko darstellt, wird es ausdrücklich empfohlen, diese entsprechend der eigenen Server-Topologie und Anforderungen zu konfigurieren. Hierbei ist zum Beispiel anzuraten, den Zugriff lediglich auf den Nagios-Server zu beschränken. Eine ausführliche Dokumentation der Sicherheitsmechanismen von Jolokia finden Sie [[hier>>url:https://jolokia.org/reference/html/security.html||rel="__blank"]]. |
159 |
159 |
|
160 |
160 |
Entsprechend des Betriebs einer parallelen Jolokia-Installation ändert sich beispielhaft die Überprüfung der Verbindung zum {{fserver case="dat"/}} //localhost //wie folgt: |
161 |
161 |
|
162 |
|
-{{code language="none"}} |
|
163 |
+{{code}} |
163 |
163 |
define service{ |
164 |
164 |
use generic-service |
165 |
165 |
host_name fc-test |