18 Script-items

Overzicht

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.

Configuratie

In het Type-veld van het configuratieformulier voor items selecteer Script en vul vervolgens de vereiste velden in.

script_item.png

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.

Voorbeelden

Simpele gegevensverzameling

Verzamel de inhoud van https://www.example.com/release_notes:

  • Maak een item met het type "Script".
  • Voer in het veld Script het volgende in:
var request = new HttpRequest();
       return request.get("https://www.example.com/release_notes");
Gegevensverzameling met parameters

Verzamel de inhoud van een specifieke pagina en maak gebruik van parameters:

  • Maak een item met het type "Script" en twee parameters:
    • url : {$DOMAIN} (de gebruikersmacro {$DOMAIN} moet gedefinieerd zijn, bij voorkeur op het niveau van de host)
    • subpage : /release_notes

  • Voer in het veld Script het volgende in:
var obj = JSON.parse(value);
       var url = obj.url;
       var subpage = obj.subpage;
       var request = new HttpRequest();
       return request.get(url + subpage);
Meerdere HTTP-verzoeken

Verzamel de inhoud van zowel https://www.example.com als https://www.example.com/release_notes:

  • Maak een item met het type "Script".
  • Voer in het veld Script het volgende in:
var request = new HttpRequest();
       return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Logboekregistratie

Voeg de vermelding "Log test" toe aan het Zabbix-serverlogboek en ontvang als resultaat de itemwaarde "1":

  • Maak een item met het type "Script".
  • Voer in het veld Script het volgende in:
Zabbix.log(3, 'Log test');
       return 1;