This is a translation of the original English documentation page. Help us make it better.

18 Script-items

Overzicht

Script items kunnen worden gebruikt om gegevens te verzamelen door een door de gebruiker gedefinieerde JavaScript-code met de mogelijkheid om gegevens op te halen via HTTP/HTTPS. In aanvulling op het script, kan een optionele lijst met parameters (paren van naam en waarde) en een time-out worden opgegeven.

Dit item type kan handig zijn in scenario's voor het verzamelen van gegevens waarvoor meerdere stappen of complexe logica nodig is. Bijvoorbeeld: een script-item kan geconfigureerd zijn om een HTTP-verzoek te doen, vervolgens de gegevens te verwerken die zijn ontvangen in de eerste stap op de een of andere manier, en de getransformeerde waarde door te geven aan het tweede HTTP verzoek.

Script-items worden verwerkt door de Zabbix-server of proxy-pollers.

Configuratie

In het veld Type van itemconfiguratie formulier selecteer Script en vul vervolgens de verplichte velden in.

script_item.png

Alle verplichte invoervelden zijn gemarkeerd met een rood sterretje.

De velden die specifieke informatie voor Script-items vereisen, zijn:

Veld Beschrijving
Key Voer een unieke sleutel in die zal worden gebruikt om het item te identificeren.
Parameters Geef de variabelen op die aan het script moeten worden doorgegeven als attribuut- en waardeparen.
Built-in macros {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 in het blok dat verschijnt als u in het parameterveld klikt (of op de bekijk/bewerk-knop ernaast). Deze code moet de logica bieden voor het retourneren van de metrische waarde.
De code heeft toegang tot alle parameters, kan HTTP GET-, POST-, PUT- en DELETE-verzoeken uitvoeren en heeft controle over HTTP-headers en verzoektekst.
Zie ook : Aanvullende JavaScript-objecten, JavaScript-handleiding.
Timeout JavaScript uitvoering time-out (1-60s, standaard 3s); als het wordt overschreden, wordt een fout geretourneerd.
Tijdsuffixen worden ondersteund, b.v. 30s, 1m.
Afhankelijk van het script kan het langer duren voordat de time-out wordt geactiveerd.

Voorbeelden

Eenvoudige gegevensverzameling

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

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

Gebruik de macro {HOST.CONN} als parameterwaarde en krijg een antwoord met uitgebreide macro:

  • Maak een item met het type "Script".
  • Maak een parameter:
    Naam: host
    Waarde: {HOST.CONN}
  • Voer in het veld Script de volgende code in:
var request = new HttpRequest();
       return 
       request.post("https://postman-echo.com/post", JSON.parse(value));
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 de volgende code in:
var request = new HttpRequest();
       return 
       request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Loggen

Voeg het item "Log test" toe aan het Zabbix server log en ontvang het item waarde "1" als resultaat:

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