[comment]: # translation:outdated

[comment]: # (tags: script )

[comment]: # ({1a1e2756-1a1e2756})
# 18 Elements d'script

[comment]: # ({/1a1e2756-1a1e2756})

[comment]: # ({4a773286-cb89bc38})
#### 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.

[comment]: # ({/4a773286-cb89bc38})

[comment]: # ({9f13bdb8-7ed55e87})
#### Configuració

Al camp *Tipus* del [formulari de configuració d'element](/manual/config/items/item), trieu Script i ompliu els camps necessaris.

![script\_item.png](../../../../../assets/en/manual/config/items/itemtypes/script_item.png){width="600"}

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 que s'han de passar a l'script com a parells d'atribut i valor.<br>S'admeten [macros d'usuari](/manual/config/macros/user_macros). Per veure quines macros integrades s'admeten, cerqueu "Element de tipus script" a la taula [macro compatible](/manual/appendix/macros/supported_by_location).|
|*Script*|Introduïu el codi JavaScript a l'editor modal que s'obre quan cliquem al camp de paràmetres, o a la icona de text del llàpis que hi ha al costat. Aquest codi proveeix la lògica per retornar el valor de la mètrica.<br>El codi té accés a tots els paràmetres i tots els [bjectes JavaScript suplementaris](/manual/config/items/preprocessing/javascript/javascript_objects) proveïts per Zabbix.<br>Veieu també: [Guia JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide).|
|*Caducitat*|Temps d'execució de JavaScript (1-600s; sobrepassar el llindar retornarà un error).<br>Veieu que depenent de l'script, trigarà més el temps d'espera.<br>Per tindre més informació sobre el paràmetre *caducitat*, veieu els [atributs generals d'elements](/manual/config/items/item#configuration).|

[comment]: # ({/9f13bdb8-7ed55e87})

[comment]: # ({b41637d2-4c860844})
### Exemples

[comment]: # ({/b41637d2-4c860844})

[comment]: # ({2f86a97a-9c6c78ee})
##### 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:

```javascript
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
```

[comment]: # ({/2f86a97a-9c6c78ee})

[comment]: # ({ccceecb6-7115c5ef})
##### 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**

![](../../../../../assets/en/manual/config/items/itemtypes/script_example1.png){width=600}

- Al camp *Script*, posar-hi el codi següent:

```javascript
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
```

[comment]: # ({/ccceecb6-7115c5ef})

[comment]: # ({d5553e63-18a089f4})
##### 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:

```javascript
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
```

[comment]: # ({/d5553e63-18a089f4})

[comment]: # ({0a711007-d837bcdd})
##### 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:

```javascript
Zabbix.log(3, 'Log test');
return 1;
```

[comment]: # ({/0a711007-d837bcdd})
