18 Elementi di script

Panoramica

Gli item script possono essere utilizzati per raccogliere dati eseguendo codice JavaScript definito dall'utente, con la possibilità di recuperare dati tramite HTTP/HTTPS. Oltre allo script, è possibile specificare un elenco facoltativo di parametri (coppie di nome e valore) e un timeout.

Questo tipo di item può essere utile in scenari di raccolta dati che richiedono più passaggi o una logica complessa. Ad esempio, un item script può essere configurato per effettuare una chiamata HTTP, quindi elaborare in qualche modo i dati ricevuti nel primo passaggio e passare il valore trasformato alla seconda chiamata HTTP.

Gli item script vengono elaborati dai poller di Zabbix server o proxy.

Configurazione

Nel campo Type del modulo di configurazione dell'item selezionare Script, quindi compilare i campi richiesti.

script\_item.png

Tutti i campi di input obbligatori sono contrassegnati con un asterisco rosso.

I campi che richiedono informazioni specifiche per gli item Script sono:

Field Description
Key Inserire una chiave univoca che verrà utilizzata per identificare l'item.
Parameters Specificare le variabili da passare allo script come coppie attributo-valore.
Sono supportate le macro utente. Per vedere quali macro integrate sono supportate, cercare "Script-type item" nella tabella delle macro supportate.
Script Inserire il codice JavaScript nell'editor modale che si apre facendo clic nel campo del parametro o sull'icona della matita accanto ad esso. Questo codice deve fornire la logica per restituire il valore della metrica.
Il codice ha accesso a tutti i parametri e a tutti gli oggetti JavaScript aggiuntivi aggiunti da Zabbix.
Vedere anche: Guida JavaScript.
Timeout Timeout di esecuzione di JavaScript (1-600s; se superato, verrà restituito un errore).
Si noti che, a seconda dello script, potrebbe essere necessario più tempo prima che il timeout venga attivato.
Per ulteriori informazioni sul parametro Timeout, vedere attributi generali dell'item.

Esempi

Raccolta semplice dei dati

Raccogliere il contenuto di https://www.example.com/release\_notes:

  • Creare un item di tipo "Script".
  • Nel campo Script, inserire:
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
Raccolta dei dati con parametri

Raccogliere il contenuto di una pagina specifica e utilizzare i parametri:

  • Creare un item di tipo "Script" e due parametri:
    • url : {$DOMAIN} (la macro utente {$DOMAIN} deve essere definita, preferibilmente a livello di host)
    • subpage : /release_notes

  • Nel campo Script, inserire:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
Richieste HTTP multiple

Raccogliere il contenuto sia di https://www.example.com sia di https://www.example.com/release\_notes:

  • Creare un item di tipo "Script".
  • Nel campo Script, inserire:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Logging

Aggiungere la voce "Log test" al log del server Zabbix e ricevere in risposta il valore dell'item "1":

  • Creare un item di tipo "Script".
  • Nel campo Script, inserire:
Zabbix.log(3, 'Log test');
return 1;