[comment]: # translation:outdated

[comment]: # ({1a1e2756-1a1e2756})
# 18 Script items

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

[comment]: # ({4a773286-cb89bc38})
### Visão geral

Os itens do Script podem ser usados para coletar o dado executando 
o código JavaScript para usuário-definido com habilidade para recuperar o dado pelo HTTP/HTTPS. Além do Script, há uma lista de parâmetros (pares de nomes e valor) e intervalo que podem ser específicos.

O tipo de item pode ser útil na coleta dos cenários de dados que exigem múltiplos passos e lógica complexa. Um exemplo, o item Script pode ser configurado para fazer uma chamada HTTP, e então processar o dado recebido de alguma maneira, e passar o valor transformado para a segunda chamada HTTP. 

Os itens do Script são processados pelo Zabbix server ou pelo proxy pollers.

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

[comment]: # ({dd1b72c9-7ed55e87})
### Configuração

No campo *Tipo* do [item configuration
form](/manual/config/items/item) selecione Script e então preencha os campos requisitados.

![script\_item.png](../../../../../assets/en/manual/config/items/itemtypes/script_item.png)

Todos os campos obrigatórios do input são marcados com um asterisco vermelho.

Os campos que requisitam informação específica para os itens do Script são:

|Campo|Descrição|
|--|--------|
|Chave|Digite a chave única que irá ser usada para identificar o item.|
|Parâmetros|Especifique as variáveis a serem passadas para o script como pares de atributos e valores.<br>[Built-in macros](/manual/config/macros) {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} e [user macros](/manual/config/macros/user_macros) são suportados.|
|Script|Digite o código JavaScript no bloco que aparece quando clicar no campo do parâmetro (ou no botão view/edit próximo a ele). Este código deve providenciar a lógica retornando o valor métrico.<br>O código tem acesso a todos os parâmetros, ele pode performar requisitos HTTP GET, POST, PUT e DELETE tem todos cabeçalhos HTTP  e corpo da solicitação.<br>Ver também: [Additional JavaScript objects](/manual/config/items/preprocessing/javascript/javascript_objects), [JavaScript Guide](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide).|
|Tempo limite|Excedendo o limite de execução do JavaScript(1-60s, padrão 3s); irá retornar erro.<br>Sufixos de tempo são suportados, e.g. 30s, 1m.<br>Dependendo do script pode demorar mais para o tempo limite do trigger.|

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

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

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

[comment]: # ({2f86a97a-9c6c78ee})
##### Coleta de dados simples

Coletar o dado de *https://www.example.com/release\_notes*:

-   Criar um item com o tipo "Script".
-   No campo do  *Script*,digitar:

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

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

[comment]: # ({ccceecb6-0b145a06})
##### Coleta de dados com parâmetros

Coletar o conteúdo de uma página específica e fazer uso de parâmetros: 

- Criar um item com tipo "Script" e dois parâmetros:
    - **url : {$DOMAIN}** (o usuário macro {$DOMAIN} deve ser definido, preferencialmente no host level)
    - **subpage : /release_notes**

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

- No campo *Script* field, digitar: 

```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-0b145a06})

[comment]: # ({d5553e63-18a089f4})
##### Múltiplas solicitações HTTP 

Coletar o conteúdo de ambos os endereços
 *https://www.example.com* *https://www.example.com/release\_notes*:

-Criar um item com o tipo "Script".-
- No campo *Script*, digitar:

```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})

##### Fazendo logging

Adiconar a entrada "Log test" no servidor Zabbix and 

Adicione a entrada "Log test" ao registro do servidor Zabbix e receba o valor do item "1" como retorno:

-   Crie um item com o tipo "Script".
-   No campo *Script* field, digite:

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

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