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

3 Dependências dos gatilhos

Visão geral

Algumas vezes a disponibilidade de um host depende de outro. Um servidor que está atrás de algum roteador se tornará indisponível se o roteador cair. Com gatilhos configurados para ambos, você pode obter notificações sobre dois hosts fora - enquanto apenas o roteador é a parte culpada.

Aqui é onde alguma dependência entre hosts pode ser útil. Com dependência configurada as notificações dos dependentes podem ser retidas e apenas as notificações para o problema raiz enviadas.

Enquanto o Zabbix não suporta dependência entre hosts diretamente, elas podem ser definidas com outro método, mais flexível - dependências de gatilho. Um gatilho pode ter um ou mais gatilhos dos quais ele depende.

Então em nosso simples exemplo nós abrimos o formulário de configuração de gatilho do servidor e informamos que ele depende do respectivo gatilho do roteador. Com tal dependência o gatilho do servidor não mudará de estado enquanto o gatilho do qual ele depende estiver no estado de 'PROBLEMA' - e assim nenhuma ação será tomada e nenhuma notificação enviada para o dependente.

Se ambos servidor e roteador estiverem fora e houver dependência entre eles, o Zabbix não executará ações para o gatilho dependente.

Ações nos gatilhos dependentes não serão executadas se o gatilho do qual eles dependem:

  • mudar seu estado de 'PROBLEMA' para 'DESCONHECIDO'
  • for fechado manualmente, por correlação ou com a ajuda de funções baseadas em tempo
  • for resolvido por um valor de um item não envolvido com o gatilho dependente
  • estiver desabilitado, possuir item desabilitado ou item de host desabilitado

Note que o gatilho "secundário" (dependente) nos casos acima mencionados não serão imediatamente atualizados. Enquanto o gatilho principal estiver em estado de PROBLEMA, seus dependentes podem reportar valores, nos quais não podemos confiar. Assim, o gatilho só será reavaliado, e mudará seu estado, apenas depois que o gatilho principal estiver em estado OK e tivermos recebido métricas confiáveis.

Também:

  • Dependência de gatilho pode ser adicionada de qualquer gatilho de host para qualquer gatilho de host, desde que isso não resulte em uma dependência circular.
  • Dependência de gatilho pode ser adicionada de um template para outro template. Se um gatilho do template A depende de um gatilho do template B, o template A só poderá ser associado a um host (ou outro template) em conjunto com o template B, mas o template B pode ser associado a um host (ou outro template) de forma isolada.
  • Dependência de gatilho pode ser adicionada a partir do gatilho do template para um gatilho de host. Neste caso, a associação de tal template a um host criará um gatilho de host que depende do mesmo gatilho do qual o gatilho do template também depende. Isto permite a, por exemplo, ter um template onde alguns gatilhos dependem dos gatilhos do roteador (host). Todos os hosts associados a este template dependerão deste roteador específico.
  • Dependência de gatilho de um gatilho de host para um gatilho de template não pode ser adicionado.
  • Dependência de gatilho pode ser adicionada de um protótipo de gatilho para outro protótipo de gatilho (dentro da mesma regra de descoberta de baixo-nível) ou um gatilho real. Um protótipo de gatilho não pode depender de um protótipo de gatilho de uma regra LLD (descoberta de baixo-nível) diferente ou de um gatilho criado a partir de um protótipo de gatilho. Um protótipo de gatilho de host não pode depender de um gatilho de um template.

Configuração

Para definir uma dependência, abra a aba Dependências no formulário de configuração do gatilho. Clique em Adicionar no bloco 'Dependências' e selecione um ou mais gatilhos dos quais nosso gatilho dependerá.

Clique em Atualizar. Agora o gatilho tem uma indicação de sua dependência na lista.

Exemplo de várias dependências

Por exemplo, um host está atrás de um Roteador2 e o Roteador2 está atrás de um Roteador1.

Zabbix - Roteador1 - Roteador2 - Host

Se o Roteador1 estiver fora, então obviamente Host e Roteador2 estarão também inalcançáveis, ainda assim não queremos receber três notificações sobre Host, Roteador1 e Roteador2 estarem todos fora.

Então neste caso definimos duas dependências:

O gatilho 'Host está fora (down)' depende do gatilho 'Roteador2 está fora'
       O gatilho 'Roteador2 está fora' depende do gatilho 'Roteador1 está fora'

Antes de mudar o estado do gatilho 'Host está fora', o Zabbix verificará por dependências de gatilho correspondentes. Se encontradas, e um destes gatilhos estiver em estado de 'PROBLEMA', então o estado do gatilho não será alterado e portanto ações não serão executadas e notificações não serão enviadas.

O Zabbix executa esta verificação recursivamente. Se Roteador1 ou Roteador2 estiver inalcançável, o gatilho do Host não será atualizado.