Monitoring-Schnittstelle

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.

Gültig für Version

2.23

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

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:

1 2 3 4 5 6 7 8 9 10 11 12 [ { "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:

1 2 3 4 5 { "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:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [ { "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/status

Liefert Details zum FE2-System, unter anderem die Anzahl der Fehler in den letzten 60 Minuten.

Beispiel für Rückgabe:

1 2 3 4 5 6 7 8 9 10 { "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:

1 2 3 4 {     "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:

1 2 3 4 5 6 7 8 9 {     "freeMemory": 7228,     "disks": [         {             "disk": "C:\\",             "freeSpace": 293         }     ] }

freeMemory

Der freie Arbeitsspeicher in MB

disks.disk

Laufwerkbuchstabe

disks.freeSpace

Freier Speicher in GB