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.

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;