Script items kunnen worden gebruikt om gegevens te verzamelen door aangepaste JavaScript-code uit te voeren met de mogelijkheid om gegevens op te halen via HTTP/HTTPS. Naast het script kan een optionele lijst met parameters (paren van naam en waarde) en een time-out worden opgegeven.
Dit type item kan nuttig zijn in gegevensverzamelings-scenario's die meerdere stappen of complexe logica vereisen. Als voorbeeld kan een Script item geconfigureerd worden om een HTTP-oproep te doen, vervolgens de in de eerste stap ontvangen gegevens op een bepaalde manier te verwerken en de getransformeerde waarde door te geven aan de tweede HTTP-oproep.
Script items worden verwerkt door Zabbix-server- of proxy-pollers.
In het Type-veld van het configuratieformulier voor items selecteer Script en vul vervolgens de vereiste velden in.
Alle verplichte invoervelden zijn gemarkeerd met een rode asterisk.
De velden die specifieke informatie vereisen voor Script-items zijn:
Veld | Beschrijving |
---|---|
Sleutel | Voer een unieke sleutel in die zal worden gebruikt om het item te identificeren. |
Parameters | Specificeer de variabelen die als attribuut- en waardeparen aan het script moeten worden doorgegeven. Gebruikersmacro's worden ondersteund. Om te zien welke ingebouwde macro's worden ondersteund, zoek je naar "Script-type item" in de ondersteunde macro-tabel. |
Script | Voer JavaScript-code in het blok in dat verschijnt wanneer je in het parameter-veld klikt (of op de bekijk/bewerk-knop ernaast). Deze code moet de logica verschaffen om de metriekwaarde terug te geven. De code heeft toegang tot alle parameters, kan HTTP GET-, POST-, PUT- en DELETE-verzoeken uitvoeren, en heeft controle over HTTP-headers en het verzoeklichaam. Zie ook: Aanvullende JavaScript-objecten, JavaScript-gids. |
Time-out | Time-out voor JavaScript-uitvoering (1-60s, standaard 3s); bij overschrijding hiervan wordt een fout geretourneerd. Tijdssuffixen worden ondersteund, bijv. 30s, 1m. Afhankelijk van het script kan het langer duren voordat de time-out wordt geactiveerd. |
Verzamel de inhoud van https://www.example.com/release_notes:
Verzamel de inhoud van een specifieke pagina en maak gebruik van parameters:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
Verzamel de inhoud van zowel https://www.example.com als https://www.example.com/release_notes:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Voeg de vermelding "Log test" toe aan het Zabbix-serverlogboek en ontvang als resultaat de itemwaarde "1":