Webhook
Funktion | Webhook-Aufträge werden verwendet, um Daten von außerhalb der SKOOR Engine über deren REST-API zu empfangen. Der Job wartet auf Eingabewerte (numerische und String-Werte) und speichert den Werteverlauf der eingehenden Werte. |
---|---|
Alarmierung | Fehlercode, Werte, String-Werte |
Für diese Art von Job muss der Kollektor auf einen eingestellt werden, der zur Authentifizierung der REST-Aufrufe verwendet werden kann. Falls noch nicht geschehen, erstellen Sie einen Benutzer des Typs Kollektor in /root/Users/Users.
Webhook-Details
Webhook-Parameter
Parameter | Beschreibung |
---|---|
Zeitüberschreitung nach | Wenn gesetzt, wird der Fehlercode des Auftrags auf 5 (Timeout Error) gesetzt, wenn innerhalb der angegebenen Zeit keine Daten an den Auftrag gesendet werden. Der Timeout muss durch den Fehlercode zurückgesetzt werden, der mit der nächsten Datenlieferung gesendet wird. |
Werte | Fügen Sie einen Wert für jeden numerischen Wert hinzu, der an die SKOOR REST API gesendet werden soll. Für jeden Wert gibt es eine Schaltfläche zur Definition der Einheit, mit der der Name, die Einheit, der Divisor, die Genauigkeit und die Beschreibung des Wertes angegeben werden können. |
String-Werte | Fügen Sie einen String-Wert für jeden String-Wert hinzu, der an die SKOOR REST API gesendet wird. Für jeden Zeichenkettenwert kann über die Schaltfläche " Einheit " der Name, die Einheit und die Beschreibung des Zeichenkettenwerts angegeben werden. |
Webhook-Werte und Alarm Limits
Wert / Alarm Limit | Beschreibung |
---|---|
Wert 1-x | Benutzerdefinierter numerischer Wert |
String-Wert 1-x | Benutzerdefinierter Zeichenfolgenwert |
Fehlercode | Generischer Job-Fehlercode (siehe Abschnitt Job-Fehlercodes) |
Einspeisung von Daten in einen Webhook-Job
Jeder REST-Client kann verwendet werden, um Werte und Zeichenkettenwerte an den Webhook-Auftrag zu senden. In diesem Beispiel wird das Kommandozeilentool curl verwendet. Im Folgenden ist ein einfaches Bash-Shell-Skript aufgeführt, das den Job bei jeder Ausführung mit zwei numerischen Werten und einem String-Wert füttert.
Zusammen mit den Werten muss ein Fehlercode gesendet werden, um den Fehlercode 5 (Timeout-Fehler) zurückzusetzen, wenn in der Jobkonfiguration Timeout after eingestellt ist
#!/bin/bash HOST="10.1.0.89" USER="webhook" PASSWORD="webhook" JOBID=830 SESSIONID=$(curl -s -k "https://${HOST}/skoor-webservice/session/login?username=${USER}&password=${PASSWORD}" | python -m json.tool | grep sessionId | cut -d"\"" -f4) curl -s -k -X POST -H "Content-Type: application/json" -d '{"returnValue1":24.42,"returnValue2":99,"stringValue1":"Skoor Test 3","errorCode":0}' "https://${HOST}/skoor-webservice/webcollector/jobs/$JOBID/values?sessionId=${SESSIONID}" curl -s -k "https://${HOST}/skoor-webservice/session/logout?sessionId=${SESSIONID}"
Das Skript definiert zunächst einige Variablen:
HOST: Die IP-Adresse oder der Hostname des SKOOR Servers, auf dem der Webhook-Job konfiguriert ist
USER: Der Name des auf dem SKOOR Server konfigurierten Kollektor-Benutzers
PASSWORD: Das Passwort des Kollektor-Benutzers
JOBID: Die ID des Webhook-Jobs, der die Werte erhalten soll
Anschließend wird eine Anmeldung beim SKOOR Webservice durchgeführt, wobei eine Sitzungs-ID erhalten wird. Die Sitzungs-ID ist eine Zeichenkette, die wie folgt aussieht: d6c38ad55e80b4a3bed39d55699b824e.
Der Befehl curl sendet die Werte unter Verwendung der Notation returnValueX und stringValueX in einer POST-Anfrage an den SKOOR Webservice, zusammen mit einer gültigen Sitzungsnummer.
Der Körper der POST-Anfrage sieht wie folgt aus:
{ "returnValue1": 24.42, "returnValue2": 99, "stringValue1": "Skoor Test 3", "errorCode": 0 }
oder
{ "returnValue": [24.42, 99], "stringValue1": "Skoor Test 3", "errorCode": 0 }
Die zu übermittelnden Daten können aus jeder beliebigen Quelle stammen, solange sie an den REST-Client weitergegeben werden können.
Senden Sie die POST-Anfrage immer mit der entsprechenden Kopfzeile Content-Type: application/json.
Als letzter Schritt meldet sich das Skript von der Sitzung ab. Achten Sie darauf, eine Abmeldung zu implementieren, da sonst bei regelmäßiger Ausführung dieses Skripts viele Sitzungen auf dem SKOOR Server offen bleiben.
Das Skript kann von jedem Host aus ausgeführt werden, der den SKOOR Engine Server über seinen HTTPS Port TCP 443 erreichen kann.
Weitere Informationen zur REST API finden Sie in der Webservice-Anleitung, die auf jeder SKOOR Engine Installation unter https://<SKOOR Server>/skoor-webservice verfügbar ist.
Bevor das Skript ausgeführt wird, müssen die 2 Werte und 1 String-Wert im Webhook-Job über die entsprechenden Unit-Schaltflächen definiert werden:
Sobald das Skript ausgeführt wird, sollte der Webhook-Job die Werte erhalten haben:
Der Wert 1 versetzt den Job in den Zustand Minor, da die folgenden Alarm Limits auf dem Job definiert wurden: