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 item configuratieformulier selecteer je Script en vul je de vereiste velden in.
Alle verplichte invoervelden zijn gemarkeerd met een rood 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 aan het script moeten worden doorgegeven als attribuut- en waardeparen. Ingebouwde macro's zoals {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} en gebruikersmacro's worden ondersteund. |
Script | Voer JavaScript-code in het blok in dat verschijnt wanneer je in het parameter-veld klikt (of op de knop voor bekijken/bewerken naast het veld). Deze code moet de logica bevatten voor het retourneren van de metrische waarde. De code heeft toegang tot alle parameters, het kan HTTP GET, POST, PUT en DELETE verzoeken uitvoeren en heeft controle over HTTP-headers en aanvraagbody. Zie ook: Aanvullende JavaScript-objecten, JavaScript Gids. |
Timeout | Timeout voor het uitvoeren van JavaScript (1-60s, standaard 3s); als deze wordt overschreden, wordt een foutmelding teruggegeven. 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":