Webhook
Funzione | I lavori Webhook sono utilizzati per ricevere dati dall'esterno dello SKOOR Engine, utilizzando la sua API REST. Il job attende i valori in ingresso (valori numerici e stringhe) e memorizza la cronologia dei valori in ingresso. |
---|---|
Allarmi | Codice di errore, Valori, Valori stringa |
Per questo tipo di lavoro, il collettore deve essere impostato su uno che possa essere usato per autenticare le chiamate REST. Se non è ancora stato fatto, creare un utente di tipo Collector in /root/Users/Users.
Dettaglio webhook
Parametri del webhook
Parametro | Descrizione |
---|---|
Timeout dopo | Se impostato, il codice di errore del lavoro verrà impostato su 5 (errore di timeout) se non vengono inviati dati al lavoro durante il tempo specificato. Il timeout deve essere ripristinato dal codice di errore inviato con la successiva consegna di dati. |
Valori | Aggiungere un valore per ogni valore numerico che verrà inviato a SKOOR REST API. Per ogni valore, un pulsante di definizione dell 'unità consente di specificare il nome, l'unità, il divisore, la precisione e la descrizione del valore. |
Valori stringa | Aggiungere un valore stringa per ogni valore stringa che verrà inviato a SKOOR REST API. Per ogni valore di stringa, un pulsante di definizione dell 'unità consente di specificare il nome, l'unità e la descrizione del valore di stringa. |
Valori e limiti di allarme dei webhook
Valore / Limite di allarme | Descrizione |
---|---|
Valore 1-x | Valore numerico definito dall'utente |
Valore stringa 1-x | Valore stringa definito dall'utente |
Codice di errore | Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro) |
Alimentazione dei dati di un lavoro Webhook
È possibile utilizzare qualsiasi client REST per inviare valori e stringhe al job Webhook. In questo esempio viene utilizzato lo strumento da riga di comando curl. Di seguito è riportato un semplice script di shell bash che alimenterà il job con 2 valori numerici e 1 valore stringa a ogni esecuzione.
Insieme ai valori deve essere inviato un codice di errore per resettare il codice di errore 5 (errore di timeout) se nella configurazione del lavoro è impostato Timeout after.
#!/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}"
Lo script definisce innanzitutto alcune variabili:
HOST: l'indirizzo IP o il nome dell'host dello SKOOR Server in cui è configurato il job Webhook
USER: il nome dell'utente del collector configurato sullo SKOOR Server
PASSWORD: la password dell'utente del collettore
JOBID: l'ID del lavoro Webhook che deve ricevere i valori.
Viene quindi eseguito un login allo SKOOR Webservice, ricevendo un ID di sessione. L'ID di sessione è una stringa di questo tipo: d6c38ad55e80b4a3bed39d55699b824e.
Il comando curl invia i valori utilizzando le notazioni returnValueX e stringValueX all'interno di una richiesta POST al SKOOR Webservice, insieme a un ID di sessione valido.
Il corpo della richiesta POST ha questo aspetto:
{ "returnValue1": 24.42, "returnValue2": 99, "stringValue1": "Skoor Test 3", "errorCode": 0 }
oppure
{ "returnValue": [24.42, 99], "stringValue1": "Skoor Test 3", "errorCode": 0 }
I dati da inserire possono provenire da qualsiasi fonte, purché possano essere passati al client REST.
Inviare sempre la richiesta POST utilizzando l'intestazione appropriata Content-Type: application/json.
Come ultimo passo, lo script si disconnette dalla sessione. Assicuratevi di implementare un logout, altrimenti l'esecuzione regolare di questo script lascerà molte sessioni aperte sul Server SKOOR.
Lo script può risiedere ed essere eseguito da qualsiasi host in grado di raggiungere il server SKOOR Engine tramite la sua porta HTTPS TCP 443.
Per ulteriori informazioni sull'API REST, consultare la guida ai webservice disponibile su ogni installazione di SKOOR Engine all'indirizzo https://<SKOOR server>/skoor-webservice.
Prima di eseguire lo script, è necessario definire i 2 valori e il valore di stringa nel job Webhook utilizzando i pulsanti corrispondenti dell 'unità:
Una volta eseguito lo script, il job Webhook dovrebbe aver ricevuto i valori:
Il valore 1 pone il job in stato Minor, poiché sul job sono stati definiti i seguenti limiti di allarme: