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: