Webhook
Funktion | Webhook-Jobs werden verwendet, um Daten von außerhalb der SKOOR Engine über deren REST-API zu empfangen. Der Job wartet auf Eingabewerte (numerische Werte und Zeichenfolgen) und speichert den Wertverlauf der eingehenden Werte. |
|---|---|
Alarmierung | Fehlercode, Werte, Zeichenfolgenwerte |
Für diese Art von Job muss der Kollektor so eingestellt sein, dass er zur Authentifizierung der REST-Aufrufe verwendet werden kann. Falls noch nicht geschehen, erstellen Sie einen Benutzer vom Typ Kollektor in /root/Users/Users.
Webhook-Details
Webhook-Parameter
Parameter | Beschreibung |
|---|---|
Zeitüberschreitung nach | Wenn diese Option aktiviert ist, wird der Fehlercode des Auftrags auf 5 (Zeitüberschreitungsfehler) gesetzt, wenn innerhalb der angegebenen Zeit keine Daten an den Auftrag gesendet werden. Die Zeitüberschreitung muss durch den mit der nächsten Datenübertragung gesendeten Fehlercode zurückgesetzt werden. |
Werte | Fügen Sie für jeden numerischen Wert, der an die SKOOR REST API gesendet wird, einen Wert hinzu. Für jeden Wert können Sie über die Schaltfläche „Einheit definieren“ den Namen, die Einheit, den Divisor, die Genauigkeit und die Beschreibung des Werts festlegen. |
Zeichenfolgenwerte | Fügen Sie für jeden String-Wert, der an die SKOOR REST API gesendet wird, einen String-Wert hinzu. Für jeden String-Wert können Sie über die Schaltfläche „Einheit definieren“ den Namen, die Einheit und die Beschreibung des String-Werts festlegen. |
Webhook-Werte und Alarm Limits
Wert / Alarm Limit | Beschreibung |
|---|---|
Wert 1-x | Benutzerdefinierter numerischer Wert |
Zeichenfolgenwert 1-x | Benutzerdefinierter Zeichenfolgenwert |
Fehlercode | Allgemeiner Job-Fehlercode (siehe Abschnitt „Job-Fehlercodes”) |
Daten an einen Webhook-Job übermitteln
Jeder REST-Client kann verwendet werden, um Werte und String-Werte an den Webhook-Job zu senden. In diesem Beispiel wird das Befehlszeilentool curl verwendet. Im Folgenden finden Sie ein einfaches Bash-Shell-Skript, das den Job bei jeder Ausführung mit 2 numerischen Werten und 1 String-Wert versorgt.
Ein Fehlercode muss zusammen mit den Werten gesendet werden, um den Fehlercode 5 (Zeitüberschreitungsfehler) zurückzusetzen, wenn „Zeitüberschreitung nach“ in der Jobkonfiguration festgelegt 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 Server, 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 empfangen soll
Anschließend wird eine Anmeldung beim SKOOR Webservice durchgeführt, wobei eine Sitzungs-ID empfangen wird. Die Sitzungs-ID ist eine Zeichenfolge, die wie folgt aussieht: d6c38ad55e80b4a3bed39d55699b824e.
Der Curl-Befehl sendet die Werte unter Verwendung der Notation returnValueX und stringValueX innerhalb einer POST-Anfrage an den SKOOR Webservice zusammen mit einer gültigen Sitzungs-ID.
Der Hauptteil 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 beliebigen Quellen stammen, solange sie an den REST-Client übergeben werden können.
Senden Sie die POST-Anfrage immer mit dem entsprechenden Header Content-Type: application/json.
Als letzten Schritt meldet sich das Skript aus der Sitzung ab. Stellen Sie sicher, dass Sie eine Abmeldung implementieren, da sonst bei regelmäßiger Ausführung dieses Skripts viele Sitzungen auf dem SKOOR Server offen bleiben.
Das Skript kann auf jedem Host gespeichert und ausgeführt werden, der den SKOOR Engine-Server über seinen HTTPS-Port TCP 443 erreichen kann.
Weitere Informationen zur REST-API finden Sie im SKOOR Webservice-Handbuch, das bei 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 Zeichenfolgenwert im Webhook-Job über die entsprechenden Unit-Schaltflächen definiert werden:
Sobald das Skript ausgeführt wurde, sollte der Webhook-Job die folgenden Werte erhalten haben:
Der Wert 1 versetzt den Job in den Status „Minor“, da für den Job die folgenden Alarm Limits definiert wurden:





