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: