18 Script items

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.

Configuração

No campo Tipo do item configuration form selecione Script e então preencha os campos requisitados.

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.
Built-in macros {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.IP}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG} e 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.
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.
Ver também: Additional JavaScript objects, JavaScript Guide.
Tempo limite Excedendo o limite de execução do JavaScript(1-60s, padrão 3s); irá retornar erro.
Sufixos de tempo são suportados, e.g. 30s, 1m.
Dependendo do script pode demorar mais para o tempo limite do trigger.

Exemplos

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:
var request = new HttpRequest();
       return request.get("https://www.example.com/release_notes");
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

  • No campo Script field, digitar:
var obj = JSON.parse(value);
       var url = obj.url;
       var subpage = obj.subpage;
       var request = new HttpRequest();
       return request.get(url + subpage);
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:

var request = new HttpRequest();
       return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
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:
Zabbix.log(3, 'Log test');
       return 1;