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

10 Execução de comandos

O Zabbix usa funcionalidades comuns para verificações externas, parâmetros do usuário, itens system.run, scripts de alerta personalizados, comandos remotos e scripts globais.

Etapas de execução

O comando/script é executado de forma semelhante no Unix e no Windows plataformas:

  1. Zabbix (o processo pai) cria um canal para comunicação
  2. Zabbix define o pipe como saída para o filho a ser criado processar
  3. Zabbix cria o processo filho (executa o comando/script)
  4. Um novo grupo de processos (no Unix) ou um trabalho (no Windows) é criado para o processo filho
  5. Zabbix lê do pipe até que o tempo limite ocorra ou ninguém esteja escrevendo para a outra extremidade (TODOS os identificadores/descritores de arquivo foram fechados). Observe que o processo filho pode criar mais processos e sair antes de sair ou fechar o descritor de identificador/arquivo.
  6. Se o tempo limite não for atingido, o Zabbix espera até que o o processo filho é encerrado ou ocorre o tempo limite
  7. Se o processo filho inicial foi encerrado e o tempo limite não foi alcançado, o Zabbix verifica o código de saída do processo filho inicial e compara com 0 (valor diferente de zero é considerado como falha de execução, apenas para scripts de alerta personalizados, comandos remotos e scripts de usuário executado no servidor Zabbix e proxy Zabbix)
  8. Neste ponto, assume-se que tudo está feito e todo o árvore de processos (ou seja, o grupo de processos ou o trabalho) é encerrado

::: não importante O Zabbix assume que um comando/script foi feito processamento quando o processo filho inicial saiu E nenhum outro processo ainda está mantendo o identificador de saída/descritor de arquivo aberto. Quando processamento é feito, TODOS os processos criados são finalizados. :::

Todas as aspas duplas e barras invertidas no comando são escapadas com barras invertidas e o comando é colocado entre aspas duplas.

Verificação de código de saída

O código de saída é verificado com as seguintes condições:

  • Apenas para scripts de alerta personalizados, comandos remotos e scripts de usuário executado no servidor Zabbix e no proxy Zabbix.
  • Qualquer código de saída diferente de 0 é considerado como execução falha.
  • Conteúdo de erro padrão e saída padrão para execuções com falha são coletados e disponibilizados no frontend (onde o resultado da execução é exibido).
  • Entrada de log adicional é criada para comandos remotos no servidor Zabbix para salvar a saída de execução do script e pode ser ativado usando Agente LogRemoteCommands parâmetro.

Possíveis mensagens de front-end e entradas de log para comandos/scripts com falha:

  • Conteúdo de erro padrão e saída padrão para execuções com falha (caso existam).
  • "Processo encerrado com código: N." (para saída vazia e código de saída não igual a 0).
  • "Processo encerrado por sinal: N." (para processo terminado por um sinal, somente no Linux).
  • "Processo finalizado inesperadamente." (para processo encerrado por razões desconhecidas).

Leia mais sobre:

See also