7 Scripts

Visão geral

O módulo Administração → Scripts permite a manutenção do cadastro de scripts externos.

Estes scripts, dependendo das permissões do usuário, estarão disponíveis para execução a partir do menu flutuante em várias partes da interface web (Dashboard, Dados recentes, Status das triggers, Eventos, Mapas) e também poderão ser chamados a partir de operações de execução de comando nas Ações. Os scripts podem ser executados no Zabbix Server ou Zabbix Agent.

Ao acessar o módulo é apresentada uma lista detalhada dos scripts.

Coluna Descrição
Nome Nome do script. Clicar no nome do script abre seu formulário de configuração.
Tipo Tipo do script - Script ou IPMI.
Executar em Local onde o script será executado - Servidor ou Agente.
Comandos Todos os comandos executados pelo script.
Grupo de usuários Grupos de usuários para os quais o script estará disponível (ou Todos para todos os grupos).
Grupo de hosts Grupos de hosts para os quais o script estará disponível (ou Todos para todos os grupos).
Acesso ao host Nível mínimo de acesso ao grupo de host para que o script apareça - Leitura ou Escrita. Apenas usuários com o nível de acesso adequado terão acesso ao script.

Para configurar um novo script, utilize o botão Criar script localizado no lado direito da barra de título.

Opções de atualização em massa

Ao final da lista existem botões que executam operações em massa:

  • Excluir - Excluir os scripts selecionados

Para usar estas opções, selecione os scripts e clique no botão com a ação desejada.

Configurando um script global

Coluna Descrição
Nome Identificador único do script.
Desde o Zabbix 2.2 o nome pode ser prefixado com o caminho, por exemplo, Padrão/, colocando o script no diretório respectivo. Nos menus de monitoração, os scripts serão organizados por seus diretórios.
Um script não pode ter o mesmo nome de um diretório (e vice-versa). Um nome de scritp deverá ser único em seu diretório.
Os caracteres de escape são ignorados na validação de unicidade, ex. "Ping" e "\Ping" não poderão ser adicionados no mesmo diretório. Caracteres de escape podem ser escapados com o uso da contrabarra "\", Ex. '\/' ou '\\'.
Tipo Tipo do script - Script ou IPMI.
Uma caixa de seleção especial para scripts contendo comandos IPMI está disponível desde o Zabbix 2.0.
Execute on Selecione o local de execução do script (Servidor Zabbix ou Agente).
O suporte a execução de scripts no agente está disponível desde o Zabbix 2.0 (é necessária a habilitação do parâmetro EnableRemoteCommands no arquivo de configuração do agente).
Comandos Caminho completo para os comandos a serem executados pelo script.
Algumas macros são suportadas nos comandos: {HOST.CONN}, {HOST.IP}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}. Se o valor de uma macro contiver espaços você deverá escapa-la.
O suporte a macros foi adicionado no Zabbix 2.2.
Description Descrição do script.
Grupo de usuários Grupos de usuários para os quais o script estará disponível (ou Todos para todos os grupos).
Grupo de hosts Grupos de hosts para os quais o script estará disponível (ou Todos para todos os grupos).
Acesso ao host Nível mínimo de acesso ao grupo de host para que o script apareça - Leitura ou Escrita. Apenas usuários com o nível de acesso adequado terão acesso ao script.
Habilitar confirmação Marque para que uma mensagem de confirmação seja exibida antes da execução do script. Esta função pode ser especialmente útil em comandos potencialmente perigosos (como um comando de reboot) ou que irão demorar muito.
Mensagem de confirmação Mensagem customizada de confirmação usada no popup de confirmação de execução do script (por exemplo, O comando irá reiniciar o servidor remoto, continuar?). Para ver como a mensagem será exibida, clique no botão Testar mensagem de confirmação próximo ao campo.
Desde o Zabbix 2.2, a mensagem de confirmação pode utilizar macros: {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN} e macros de usuário. Nota: As macros não serão expandidas durante o teste de confirmação da mensagem.

Resultado do script

O resultado da execução do script será exibido em um pop-up após sua execução.

Nota: O valor de retorno do script será o que ele enviar para a saida normal.

Veja exemplo de um script e da janela de resultado a seguir:

uname
       uname --non-existing-flag
       /tmp/non_existing_script.sh

Script execution and result

Scripts run by Zabbix server are executed by the order described in Command execution section including exit code checking. The script result will be displayed in a pop-up window that will appear after the script is run.

Note: The return value of the script is standard output together with standard error.

See an example of a script and the result window below:

uname -v
       /tmp/non_existing_script.sh
       echo "This script was started by {USER.USERNAME}"

The script result does not display the script itself.

Script timeout

Zabbix agent

You may encounter a situation when a timeout occurs while executing a script.

See an example of a script running on Zabbix agent and the result window below:

sleep 5
       df -h

The error message, in this case, is the following:

Timeout while executing a shell script.

In order to avoid such a situation, it is advised to optimize the script itself (instead of adjusting Timeout parameter to a corresponding value (in our case, > ‘5’) by modifying the Zabbix agent configuration and Zabbix server configuration).

In case still the Timeout parameter is changed in Zabbix agent configuration following error message appears:

Get value from agent failed: ZBX_TCP_READ() timed out.

It means that modification was made in Zabbix agent configuration and it is required to modify Timeout setting also in Zabbix server configuration.

Zabbix server/proxy

See an example of a script running on Zabbix server and the result window below:

sleep 11
       df -h

It is also advised to optimize the script itself (instead of adjusting TrapperTimeout parameter to a corresponding value (in our case, > ‘11’) by modifying the Zabbix server configuration).