18 Elements d'script

Vista general

Els elements d'script es poden emprar per recollir dades executant codi JavaScript definit per l'usuari amb la possibilitat de recuperar les dades via HTTP/HTTPS. A més de l'script, es poden definir una llista opcional de paràmetres (parella de nom i valor) i un temps d'espera.

Aquest tipus d'element pot ésser útil en escenaris de recollida de dades on calgui múltiples passes o una lògica complexa. Per exemple, un element d'script pot fer una crida HTTP, tractar les dades rebudes a la primera passa d'una manera o una altra, i transmetre el valor transformat a la segona crida HTTP.

Els elements d'script són tractats per el servidor Zabbix o els enquestadors proxy.

Configuració

Al camp Tipus del formulari de configuració d'element, trieu Script i ompliu els camps necessaris.

script_item.png

Tots els camps obligatoris es marquen amb un asterisc vermell.

Els camps que necessiten informació específica per als elements d'script són:

Camp Descripció
Clau Clau única que s'emprarà per identificar l'element.
Paràmetres Especifiqueu les variables a transmetre a l'script com atributs i valors.
S'admeten Macros integrades {HOST.CONN}, {HOST.DNS}, {HOST .HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} i macros d'usuari.
Script Entreu el codi JavaScript al bloc que apareix quan cliqueu el camp de paràmetre (o al botó afegir/modificar que hi ha al seu costat). Aquest codi proveeix la lògica per retornar el valor de la mètrica.
El codi té accés a tots els paràmetres, i pot fer peticions HTTP GET, POST, PUT i DELETE i controlar les capçaleres HTTP i el cos de la petició.
Veieu també: Objectes JavaScript suplementaris, Guia JavaScript.
Caducitat Temps d'execució de JavaScript (1-60s, 3s per defecte); sobrepassar-ho tornarà un error.
Els sufixes horaris s'admeten, per exemple. 30s, 1m.
Segons l'script, el temps d'espera pot prendre més temps a executar el trigger.

Exemples

Recollida de simple de dades

Recollir el contingut de https://www.example.com/release_notes:

  • Crear un element de tipus "Script".
  • Al camp Script, posar-hi el codi següent:
var request = new HttpRequest();
       return request.get("https://www.example.com/release_notes");
Recollida de dades amb paràmetres

Recollir el contingut d'una pàgina específica i emprar els paràmetres:

  • Crear un element de tipus "Script" i dos paràmetres:
    • url : {$DOMAIN} (la macro d'usuari {$DOMAIN} s'ha de definir, preferiblement a nivell d'equip)
    • subpage : /release_notes

  • Al camp Script, posar-hi el codi següent:
var obj = JSON.parse(value);
       var url = obj.url;
       var subpage = obj.subpage;
       var request = new HttpRequest();
       return request.get(url + subpage);
Peticions HTTP múltiples

Recollir el contingut de https://www.example.com i https://www.example.com/release_notes:

  • Crear un element de tipus "Script".
  • Al camp Script, posar-hi el següent codi:
var request = new HttpRequest();
       return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Registre

Afegir "Log test" a l'arxiu de registre del servidor Zabbix i rebre el valor de l'element "1" de tornada:

  • Crear un element de tipus "Script".
  • Al camp Script, poseu-hi el codi següent:
Zabbix.log(3, 'Log test');
       return 1;