Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

8 Scripts

Visão geral

Na seção Administração → Scripts scripts globais definidos pelo usuário pode ser configurado e mantido.

Scripts globais, dependendo do escopo configurado e também de permissões, estão disponíveis para execução:

  • do host menu em vários locais de frontend (Dashboard, Problems, Latest dados, Mapas, etc.)
  • do evento menu
  • pode ser executado como uma operação de ação

Os scripts são executados no agente Zabbix, servidor Zabbix (proxy) ou Apenas servidor Zabbix. Veja também Comando execução.

Tanto no agente Zabbix quanto nos scripts remotos do proxy Zabbix são desabilitados por predefinição. Eles podem ser habilitados por:

  • adicionando o parâmetro AllowKey=system.run[*] no agente configuração;
  • definindo o parâmetro EnableRemoteCommands para '1' no proxy configuração

Uma lista de scripts existentes com seus detalhes é exibida.

Dados exibidos:

Coluna Descrição
Nome Nome do script. Clicar no nome do script abre o script formulário de configuração.
Escopo Escopo do script - operação de ação, ação manual do host ou ação manual do evento. Essa configuração determina onde o script está disponível.
Usado em ações Ações onde o script é usado são exibidas.
Tipo O tipo de script é exibido - comando Webhook, Script, SSH, Telnet ou IPMI.
Execute on É exibido se o script será executado apenas no agente Zabbix, servidor Zabbix (proxy) ou servidor Zabbix apenas.
Comandos Todos os comandos a serem executados dentro do script são exibidos.
Grupo de usuários O grupo de usuários para o qual o script está disponível é exibido (ou Todos para todos os grupos de usuários).
Grupo de hosts O grupo de hosts para o qual o script está disponível é exibido (ou All para todos os grupos de hosts).
Acesso ao host O nível de permissão para o grupo de hosts é exibido - Read ou Write. Somente usuários com o nível de permissão necessário terão acesso à execução do script.

Para configurar um novo script, clique no botão Criar script na canto superior direito.

Opções de edição em massa

Um botão abaixo da lista oferece uma opção de edição em massa:

  • Excluir - exclui os scripts

Para usar esta opção, marque as caixas de seleção antes dos respectivos scripts e clique em Excluir.

Usando filtro

Você pode usar o filtro para exibir apenas os scripts de seu interesse para um melhor desempenho de pesquisa, os dados são pesquisados com macros não resolvido.

O link Filter está disponível acima da lista de scripts. Se você clicar nele, fica disponível um filtro onde você pode filtrar scripts por nome e escopo.

Configurando um script global

Atributos do script:

Parâmetro Descrição
Nome Nome exclusivo do script.
Ex. Limpar sistema de arquivos /tmp
Escopo Escopo do script - operação de ação, ação manual do host ou ação manual do evento. Esta configuração determina onde o script pode ser usado - em comandos remotos de operações de ação, a partir do menu do host ou do menu do evento respectivamente.
Definir o escopo para 'Operação de ação' torna o script disponível para todos os usuários com acesso a ConfiguraçãoAções.
Se um script for realmente usado em um ação, seu escopo não pode ser alterado de 'operação de ação'.
Suporte a macro
O escopo afeta o intervalo de macros disponíveis. Por exemplo, macros relacionadas ao usuário ({USER.*}) são suportadas em scripts para permitir a transmissão de informações sobre o usuário que iniciou o script. No entanto, eles não são compatíveis se o escopo do script for uma operação de ação, pois as operações de ação são executadas automaticamente.
Para descobrir quais macros são compatíveis, faça uma pesquisa por 'Notificações e comandos baseados em acionador/Comandos baseados em acionador', 'Scripts de ação de host manual' e 'Scripts de ação de evento manual' na tabela macros com suporte. Observe que, se uma macro pode resolver um valor com espaços (por exemplo, nome do host), não se esqueça de citar conforme necessário.
Caminho do menu O caminho do menu desejado para o script. Por exemplo, Default ou Default/, exibirá o script no respectivo diretório. Os menus podem ser aninhados, por exemplo. Menu principal/Submenu1/Submenu2. Ao acessar scripts através do menu host/evento nas seções de monitoramento, eles serão organizados de acordo com os diretórios fornecidos.
Este campo é exibido apenas se 'Ação manual do host' ou 'Ação manual do evento' estiver selecionado como Escopo.
Type Clique no respectivo botão para selecionar o tipo de script:
Webhook, Script, SSH, Telnet ou IPMI comando.
Tipo de script: Webhook
Parâmetros Especifique as variáveis ​​do webhook como pares atributo-valor.
Veja também: Webhook configuração de mídia.
Macros e macros de usuário personalizados são suportados em valores de parâmetro. O suporte a macro depende do escopo do script (consulte Escopo acima).
Script Insira o código JavaScript no bloco que aparece ao clicar no campo de parâmetro (ou no botão visualizar/editar próximo a ele).
O suporte a macro depende do escopo do script (consulte Escopo acima).
Veja também: configuração de mídia Webhook, objetos Javascript adicionais.
Timeout Tempo limite de execução JavaScript (1-60s, padrão 30s).
Sufixos de tempo são suportados, por exemplo, 30s, 1m.
Tipo de script: script
Execute on Clique no respectivo botão para executar o shell script em:
Agente Zabbix - o script será executado pelo agente Zabbix (se o item system.run for permitido) no host
servidor Zabbix (proxy) - o script será executado pelo servidor Zabbix ou proxy (se habilitado por EnableRemoteCommands) - dependendo se o host é monitorado por servidor ou proxy
Zabbix server - o script será executado apenas pelo Zabbix server
Comandos Digite o caminho completo para os comandos a serem executados dentro do script.
O suporte a macro depende do escopo do script (veja Escopo acima). macros de usuário personalizados são suportados.
Tipo de script: SSH
Método de autenticação Selecione o método de autenticação - senha ou chave pública.
Nome de usuário Digite o nome de usuário.
Senha Digite a senha.
Este campo estará disponível se 'Senha' for selecionado como método de autenticação.
Arquivo de chave pública Digite o caminho para o arquivo de chave pública.
Este campo está disponível se 'Chave pública' for selecionado como método de autenticação.
Arquivo de chave privada Digite o caminho para o arquivo de chave privada.
Este campo está disponível se 'Chave pública' for selecionado como método de autenticação.
Passphrase Insira a senha.
Este campo está disponível se 'Chave pública' for selecionado como método de autenticação.
Porta Digite a porta.
Comandos Insira os comandos.
O suporte a macro depende do escopo do script (consulte Escopo acima). macros de usuário personalizados são suportados.
Tipo de script: Telnet
Nome de usuário Digite o nome de usuário.
Senha Digite a senha.
Porta Digite a porta
Comandos Insira os comandos.
O suporte a macro depende do escopo do script (consulte Escopo acima). macros de usuário personalizados são suportados.
Tipo de script: IPMI
Command Insira o comando IPMI.
O suporte a macro depende do escopo do script (consulte Escopo acima). macros de usuário personalizados são suportados.
Descrição Digite uma descrição para o script.
Grupo de hosts Selecione o grupo de hosts para o qual o script estará disponível (ou All para todos os grupos de hosts).
Grupo de usuários Selecione o grupo de usuários para o qual o script estará disponível (ou Todos para todos os grupos de usuários).
Este campo é exibido apenas se 'Ação manual do host' ou ' Ação de evento manual' está selecionada como Escopo.
Permissões de host necessárias Selecione o nível de permissão para o grupo de hosts - Read ou Write. Somente usuários com o nível de permissão necessário terão acesso para executar o script.
Este campo é exibido apenas se 'Ação manual do host' ou 'Ação manual do evento' estiver selecionado como Escopo.
Ativar confirmação Marque a caixa de seleção para exibir uma mensagem de confirmação antes de executar o script. Esse recurso pode ser especialmente útil com operações potencialmente perigosas (como um script de reinicialização) ou que podem levar muito tempo.
Esta opção é exibida apenas se 'Ação manual do host' ou 'Ação manual do evento' estiver selecionado como Escopo .
Texto de confirmação Insira um texto de confirmação personalizado para o pop-up de confirmação ativado com a caixa de seleção acima (por exemplo, O sistema remoto será reinicializado. Tem certeza?). Para ver a aparência do texto, clique em Confirmação de teste ao lado do campo.
As macros {HOST.*} e {USER.*} são compatíveis. macros de usuário personalizados são suportados.
Observação: as macros não serão expandidas ao testar a mensagem de confirmação.
Este campo é exibido apenas se 'Ação manual do host ' ou 'Ação de evento manual' está selecionada como Escopo.

Execução e resultado do script

Os scripts executados pelo servidor Zabbix são executados pela ordem descrita em Seção Execução do comando incluindo a verificação do código de saída. O resultado do script será exibido em um janela pop-up que aparecerá após a execução do script.

Nota: O valor de retorno do script é a saída padrão junto com erro padrão.

Veja um exemplo de script e a janela de resultados abaixo:

uname -v
       /tmp/non_existing_script.sh
       echo "Este script foi iniciado por {USER.USERNAME}"

O resultado do script não exibe o script em si.

Tempo limite do script

Agente Zabbix

Você pode encontrar uma situação em que ocorre um tempo limite durante a execução de um roteiro.

Veja um exemplo de script rodando no agente Zabbix e a janela de resultados abaixo:

dormir 5
       df -h

A mensagem de erro, neste caso, é a seguinte:

Tempo limite durante a execução de um script de shell.

Para evitar tal situação, é aconselhável otimizar o script em si (em vez de ajustar o parâmetro Timeout para um valor correspondente (no nosso caso, > '5') modificando o agente Zabbix configuração e servidor Zabbix configuração).

Caso ainda seja alterado o parâmetro Timeout no agente Zabbix configuration após o erro mensagem aparece:

Falha ao obter valor do agente: ZBX_TCP_READ() expirou.

Significa que a modificação foi feita no agente Zabbix configuração e é obrigatório para modificar a configuração de tempo limite também no servidor Zabbix configuração.

Servidor/proxy Zabbix

Veja um exemplo de script rodando no servidor Zabbix e o resultado janela abaixo:

dormir 11
       df -h

Também é aconselhável otimizar o próprio script (em vez de ajustar TrapperTimeout para um valor correspondente (no nosso caso, > '11') modificando o servidor Zabbix configuração).