[comment]: # translation:outdated

[comment]: # ({d5d0048d-d5d0048d})
# 3 Dependências dos gatilhos

[comment]: # ({/d5d0048d-d5d0048d})

[comment]: # ({739d687a-26bda053})
#### 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.

[comment]: # ({/739d687a-26bda053})

[comment]: # ({c11bdfd4-c4578b73})
#### Configuração

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

![](../../../../assets/en/manual/config/triggers/dependency.png)


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

![](../../../../assets/en/manual/config/triggers/dependency_list.png)

[comment]: # ({/c11bdfd4-c4578b73})

[comment]: # ({5b800c59-4dc2ce6b})
##### 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.

[comment]: # ({/5b800c59-4dc2ce6b})
