Von Version 1.1 >
bearbeitet von gru
am 15.03.2019, 15:14
Auf Version < 6.1
bearbeitet von sas
am 05.07.2022, 11:51
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -$services.localization.render("PT.Main.Monitoring")
1 +Monitoring
Übergeordnete Seite
... ... @@ -1,1 +1,1 @@
1 -Main.Technik
1 +WebHome
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.gru
1 +XWiki.sas
Inhalt
... ... @@ -4,45 +4,53 @@
4 4  
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 -* {{litem title="{{fserver/~}~}"}}de.xima.fc:type=FSMonitor,qualifier=<Kontext-Name> {{/litem}}
8 -* {{litem title="{{mserver/~}~}"}} de.xima.fc:type=MSMonitor,qualifier=<Kontext-Name> {{/litem}}
7 +; Frontend-Server
8 +: de.xima.fc:type=FSMonitor,qualifier=<Kontext-Name>
9 +; Master-Server
10 +: de.xima.fc:type=MSMonitor,qualifier=<Kontext-Name>
9 9  
10 -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:
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:
11 11  
12 -
13 -=== {{mserver/}} (MSMonitor) ===
14 -
15 -{{table caption="Übersicht über Eigenschaften MSMonitor" dataTypeAlpha="0" preSort="0-asc"}}
14 +{{table dataTypeAlpha="0" preSort="0-asc" caption="Übersicht über die Eigenschaften des MSMonitor (Master-Server)"}}
16 16  |= Attribut|=Bedeutung|= Mögliche Werte
17 -|running|Gibt an, ob der {{mserver/}} aktiv ist|true,false
18 -|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
19 19  |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>
20 -__Wert:__ true,false
19 +__Rückgabewert:__ true/false
21 21  |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>
22 -__Wert:__ true,false
21 +__Rückgabewert:__ true/false
23 23  |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>
24 -__Wert:__ CONNECTED,NOT_CONNECTED,ERROR,
23 +__Rückgabewert:__ CONNECTED,NOT_CONNECTED,ERROR,
25 25  RECONNECTING,DISCONNECTING,CONNECTING,
26 26  AUTHENTICATING, WAIT_FOR_CONNECTION
27 -|fs_disconnected_count| Gibt die Anzahl der nicht verbundenen {{fserver case="nom" number="plural"/}} an.|Zahlen größer/gleich 0
28 -|fs_connected_count| Gibt die Anzahl der verbundenen {{fserver case="nom" number="plural"/}} an.|Zahlen größer/gleich 0
26 +|fs_disconnected_count|Gibt die Anzahl der nicht verbundenen {{fserver case="nom" number="plural"/}} an.|Eine Zahl größer oder gleich 0
27 +|fs_connected_count| Gibt die Anzahl der verbundenen {{fserver case="nom" number="plural"/}} an.|Eine Zahl größer oder 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
29 29  {{/table}}
30 30  
31 -=== {{fserver/}} (FSMonitor) ===
32 -
35 +{{table dataTypeAlpha="0" preSort="0-asc" fullwidth="true" caption="Übersicht über die Eigenschaften des FSMonitor (frontend-Server)"}}
33 33  |=Attribut|=Bedeutung|=Mögliche Werte
34 -|running|Gibt an, ob der {{fserver/}} erfolgreich gestartet wurde.|true,false
35 -|connected|Gibt an, ob der {{fserver/}} mit einem {{mserver/}} verbunden ist.|true,false
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
36 36  |status|Gibt den konkreten Verbindungsstatus des {{fserver case="gen"/}} an.|CONNECTED,NOT_CONNECTED,ERROR,
37 37  RECONNECTING,DISCONNECTING,CONNECTING,
38 38  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 +{{/table}}
39 39  
40 40  == JSON-REST-Schnittstelle ==
41 41  
42 -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:
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"]].
43 43  
50 +Ein möglicher Aufruf, nach erfolgter Installation von Jolokia, sieht hierbei zum Beispiel wie folgt aus:
51 +
44 44  {{info}}
45 -http://localhost/formcycle/monitoring/read/de.xima.fc:type=MSMonitor,qualifier=formcycle
53 +[[http:~~/~~/localhost/jolokia/read/de.xima.fc:type=MSMonitor,qualifier=formcycle>>http://localhost/formcycle/monitoring/read/de.xima.fc:type=MSMonitor,qualifier=formcycle]]
46 46  {{/info}}
47 47  
48 48  JSON-Antwort:
... ... @@ -49,43 +49,33 @@
49 49  
50 50  {{code language="JSON"}}
51 51  {
52 -"timestamp":1440603508,
53 -"status":200,
54 -"request":{
55 - "mbean":"de.xima.fc:qualifier=formcycle,type=MSMonitor",
56 - "type":"read"
57 -},
58 -"value":{
59 - "fs_active":{
60 - "sas":true,
61 - "localhost":false,
62 - "mko":true
63 - },
64 - "fs_connected":{
65 - "sas":false,
66 - "localhost":false,
67 - "mko":false
68 - },
69 - "db_connected":true,"fs_status":{
70 - "sas":"ERROR",
71 - "localhost":"NOT_CONNECTED",
72 - "mko":"ERROR"
73 - },
74 - "fs_disconnected_count":3,
75 - "fs_connected_count":0,
76 - "running":true
77 - }
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
78 78  }
79 79  {{/code}}
80 80  
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"]].
81 81  
82 -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"]].
83 -
84 -{{warning}}
85 -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)
86 -{{/warning}}
87 -
88 -
89 89  == Nagios-Anbindung ==
90 90  
91 91  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.
... ... @@ -97,7 +97,7 @@
97 97  {{/warning}}
98 98  
99 99  {{panel title="Command" fullwidth="true" initial="hidden" triggerable="true"}}
100 -{{code}}
98 +{{code language="none"}}
101 101  define command{
102 102   command_name check_jmx4perl
103 103   command_line check_jmx4perl --url $ARG1$ --mbean $ARG2$ --attribute $ARG3$ $ARG4$
... ... @@ -106,9 +106,9 @@
106 106  {{/panel}}
107 107  
108 108  {{panel title="Service-Definitionen" fullwidth="true" initial="hidden" triggerable="true"}}
109 -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:
110 -
111 -{{code}}
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"}}
112 112  define service{
113 113   use generic-service
114 114   host_name localhost
... ... @@ -119,7 +119,7 @@
119 119  {{/panel}}
120 120  
121 121  {{panel title="Abfrage des Datenbank-Verbindungsstatus des {{mserver case='gen'/~}~}" fullwidth="true" initial="hidden" triggerable="true"}}
122 -{{code}}
120 +{{code language="none"}}
123 123  define service{
124 124   use generic-service
125 125   host_name localhost
... ... @@ -130,7 +130,7 @@
130 130  {{/panel}}
131 131  
132 132  {{panel title="Abfrage, ob {{fserver/~}~} localhost mit {{mserver case='dat'/~}~} verbunden ist" fullwidth="true" initial="hidden" triggerable="true"}}
133 -{{code}}
131 +{{code language="none"}}
134 134  define service{
135 135   use generic-service
136 136   host_name localhost
... ... @@ -141,7 +141,7 @@
141 141  {{/panel}}
142 142  
143 143  {{panel title="Abfrage an {{fserver/~}~}, ob dieser erfolgreich mit einem {{mserver/~}~} verbunden ist" fullwidth="true" initial="hidden" triggerable="true"}}
144 -{{code}}
142 +{{code language="none"}}
145 145  define service{
146 146   use generic-service
147 147   host_name localhost
... ... @@ -157,11 +157,11 @@
157 157  
158 158  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"]])
159 159  
160 -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"]].
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"]].
161 161  
162 162  Entsprechend des Betriebs einer parallelen Jolokia-Installation ändert sich beispielhaft die Überprüfung der Verbindung zum {{fserver case="dat"/}} //localhost //wie folgt:
163 163  
164 -{{code}}
162 +{{code language="none"}}
165 165  define service{
166 166   use generic-service
167 167   host_name fc-test
... ... @@ -169,5 +169,3 @@
169 169   check_command check_jmx4perl!http://fc-test/jolokia/!de.xima.fc:type=MSMonitor,qualifier=formcycle!fs_connected!--path=localhost --string --critical 'false'
170 170  }
171 171  {{/code}}
172 -
173 -
Copyright 2000-2024