Die Monitoring-Schnittstelle bietet eine API zur Erfassung des aktuellen Systemzustandes, um Ausfälle zu erkennen und gegebenenfalls mit Tools wie z.B. Zabbix abzugreifen.
Inhalt
Aktivierung
Die Schnittstelle kann einfach über den Alarmeingang “Monitoring” aktiviert werden. Beim Hinzufügen wird automatisch ein Zugriffsschlüssel generiert, der im Konfigurationsfenster angezeigt werden kann. Dieser wird später zur Authentifizierung benötigt.
Benutzen der Schnittstelle
Grundlage
Um auf die Schnittstelle zuzugreifen, werden HTTP GET-Anfragen benutzt. Diese liefern die Antwort entweder als Plaintext oder im JSON-Format.
Aufbau der GET-Anfrage
Header
Authorization: enthält den Zugriffsschlüssel
Query-Parameter
(optional) simple: boolean, wenn true kommt als Ergebnis nur “OK” oder “ERROR”
Der Zugriffsschlüssel kann optional auch nur als Query-Parameter und nicht im Header gesetzt werden
(optional) Authorization: enthält den Zugriffsschlüssel
Endpunkte und Rückgabewerte
/rest/monitoring/input
Dient der Abfrage des aktuellen Zustands aller aktiven Alarmeingänge
Beispiel für Rückgabe:
[ { "name": "Monitoring", "identifier": 1487306980, "state": "OK" }, { "name": "Leitstellen-Fax", "identifier": 2145575774, "state": "OK" } ]
name | Name des Alarmeingangs |
identifier | ID des Alarmeingangs |
state | OK, wenn alles gut ERROR, wenn ein Fehler aufgetreten ist |
/rest/monitoring/input/[identifier]
Liefert genauere Daten zu einem bestimmten Alarmeingang zurück. [identifier] ist die eindeutige ID des Alarmeingangs, die über die obige Anfrage erhalten werden kann.
Beispiel für Rückgabe:
{ "name": "Leitstellen-Fax", "state": "OK", "message": "Fax-Überwachung gestartet in Ordner: C:\\Users\\..." }
name | Name des Alarmeingangs |
state | OK, wenn alles gut ERROR, wenn ein Fehler aufgetreten ist |
message | Letzte Wichtige Meldung des Plugins, null wenn nicht vorhanden |
/rest/monitoring/cloud
Liefert den aktuellen Zustand der Cloud-Dienste
Beispiel für Rückgabe:
[ { "state": "OK", "service": "Kalender" }, { "state": "OK", "service": "Alarmierung" }, { "state": "ERROR", "service": "Maps" }, { "state": "OK", "service": "Verfügbarkeit" } ]
state | Zustand des Cloud-Dienstes OK, wenn alles gut ERROR, wenn Dienst nicht erreichbar |
service | Name des Cloud-Dienstes |
/rest/monitoring/amweb 2.29
Liefert Details über den Verbindungzustand aller im FE2-System angelegten Alarmmonitore.
Eine aktive Prüfung, welche Alarmmonitore eine aktive Verbindung zu ihrem FE2-System haben, ist nur im Verbindungsmodus “Websocket-Direktverbindung” möglich. Ist keine Websocket-Verbindung aktiv, wechselt der Modus automatisch in “Connect”.
Beispiel für Rückgabe:
[ { "identifier": "640aed06230dd815394bedc1", "name": "TestMonitor", "organization": "FF Musterhausen", "connectionType": "WEBSOCKET", "connectionState": "OK", "nbrOfWebSocketConnections": 2 }, { "identifier": "18401a67c7181d4c52102354", "name": "TestMonitor 2", "organization": "FF Musterstadt", "connectionType": "CONNECT", "connectionState": "UNKNOWN", "nbrOfWebSocketConnections": 0 } ]
identifier | ID des Alarmmonitors (nicht AMweb-Access-ID!) |
name | Name des Alarmmonitors |
organization | Organisation, in der der Alarmmonitor angelegt ist |
connectionType | CONNECT, falls Alarmmonitor über den Connect-Dienst angesteuert wird (Standard) WEBSOCKET, falls Alarmmonitor über die Websocket-Direktverbindung angesteuert wird |
connectionState | UNKNOWN, wenn keine Verbindungsinformationen vorhanden ist oder wenn der AMweb über CONNECT angebunden ist. OK, wenn die Websocket-Direktverbindung hergestellt ist |
nbrOfWebSocketConnections | Gibt die Anzahl der Websocket-Verbindungen zwischen FE2 und dem AMweb an (zwischen 0 und 3 Verbindungen). Bei Verbindungstyp “CONNECT” wird immer 0 angezeigt, da hier die Anzahl an Verbindungen nicht ermittelt werden kann. |
/rest/monitoring/status
Liefert Details zum FE2-System, unter anderem die Anzahl der Fehler in den letzten 60 Minuten.
Beispiel für Rückgabe:
{ "state": "OK", "message": "", "nbrOfLoggedErrors": 0, "redundancyState": { "state": "OK", "current": "STANDALONE", "configured": "STANDALONE" } }
state | OK, wenn keine Fehler aufgetreten sind WARN, wenn in den letzten 60 Minuten Fehler aufgetreten sind ERROR, wenn beim Start Fehler aufgetreten sind oder die Datenbank nicht erreichbar ist |
message | Details zu den Fehlern, wenn state = ERROR |
nbrOfLoggedErrors | Anzahl der Fehler, die in den letzten 60 Minuten aufgetreten sind |
redundancyState | Objekt, das den aktuellen Modus des Servers beschreibt |
redundancyState.state | OK, wenn alles gut WARN, wenn current != configured |
redundancyState.current | aktueller Modus des Systems STANDALONE, MASTER oder SLAVE |
redundancyState.configured | konfigurierter Modus des Systems STANDALONE, MASTER oder SLAVE |
/rest/monitoring/mqtt
Liefert Details zur Erreichbarkeit der beiden MQTT-Server.
Beispiel für Rückgabe:
{ "defaultBroker": "OK", "kubernetes": "OK" }
defaultBroker | Zustand des Default-Brokers OK, wenn erreichbar ERROR, wenn nicht erreichbar NOT_USED, wenn kein MQTT-Dienst in Benutzung |
kubernetes | Zustand des Default-Brokers OK, wenn erreichbar ERROR, wenn nicht erreichbar NOT_USED, wenn kein MQTT-Dienst in Benutzung |
/rest/monitoring/system
Liefert Details zum Speicher des Systems
Beispiel für Rückgabe:
{ "freeMemory": 7228, "disks": [ { "disk": "C:\\", "freeSpace": 293 } ] }
freeMemory | Der freie Arbeitsspeicher in MB |
disks.disk | Laufwerkbuchstabe |
disks.freeSpace | Freier Speicher in GB |
Kommentar hinzufügen