[comment]: # ({e02835c7-e02835c7})
# 3 Triggers

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

[comment]: # ({f28c289a-d4a1b8b6})
#### Visão geral

Triggers são expressões lógicas que "avaliam" os dados coletados pelos items
e representam o estado atual do sistema.

Enquanto os items são usados para coletar dados do sistema, é altamente impraticável
acompanhar esses dados o tempo todo esperando por uma condição que seja alarmante
ou mereça atenção. O trabalho de "avaliar" os dados pode ser deixado para
expressões de trigger.

As expressões de trigger permitem definir um limite de qual estado dos dados é
"aceitável". Portanto, caso os dados recebidos ultrapassem o estado aceitável, uma trigger é "disparada" - ou muda seu status para PROBLEM.

Uma trigger pode ter os seguintes status:

|Status|Descrição|
|-----|-----------|
|OK|Este é o status normal da trigger.|
|Problem|Algo aconteceu. Por exemplo, a carga do processador está muito alta.|
|Unknown|O valor da trigger não pode ser calculado. Veja [Status Unknown](#unknown-status).|

Em uma trigger simples, podemos querer definir um limite para uma média de cinco minutos de alguns dados, por exemplo, a carga da CPU. Isso é feito definindo uma expressão de trigger onde:

-   a função 'avg' é aplicada ao valor recebido na chave do item
-   um período de cinco minutos para avaliação é usado
-   um limite de '2' é definido

```
    avg(/host/key,5m)>2
```

Esta trigger será "disparada" (se tornará PROBLEM) se a média de cinco minutos for *maior* que 2.

Em uma trigger mais complexa, a expressão pode incluir uma **combinação** de múltiplas funções e múltiplos limites. Veja também: [Expressão de trigger](/manual/config/triggers/expression).

Triggers não podem ser criadas para items que retornam valores com o [tipo de dado](/manual/config/items/item#configuration) binário.

[comment]: # ({/f28c289a-d4a1b8b6})

[comment]: # ({b729742d-7c263ca6})
::: notetip
Após habilitar um trigger (alterando seu status de configuração de *Desabilitado* para *Habilitado*), a expressão do trigger é avaliada assim que um item nela recebe um valor ou chega o momento de processar as funções de [data e hora](/manual/appendix/functions/time) e/ou [nodata()](/manual/appendix/functions/history#nodata).
:::

[comment]: # ({/b729742d-7c263ca6})

[comment]: # ({4d0d2ac7-a45a4e79})

Most trigger functions are evaluated based on item value
[history](/manual/config/items/history_and_trends) data, while some
trigger functions for long-term analytics, e.g. **trendavg()**,
**trendcount()**, etc, use trend data.

[comment]: # ({/4d0d2ac7-a45a4e79})

[comment]: # ({3296f4fc-6781ee38})
#### Tempo de cálculo

Um trigger é recalculado toda vez que o Zabbix server recebe um novo valor
que faz parte da expressão. Quando um novo valor é recebido, cada
função incluída na expressão é recalculada (não apenas
aquela que recebeu o novo valor).

Além disso, um trigger é recalculado toda vez que um novo valor é
recebido **e** a cada 30 segundos se as funções de [data e hora](/manual/appendix/functions/time) e/ou 
[nodata()](/manual/appendix/functions/history#nodata) forem usadas na expressão.

As funções de [data e hora](/manual/appendix/functions/time) e/ou [nodata()](/manual/appendix/functions/history#nodata) são recalculadas a cada 30 segundos pelo processo history syncer do Zabbix.

Triggers que referenciam **apenas** funções de tendência são avaliados uma vez por
o menor período de tempo na expressão. Veja também [funções de tendência](/manual/appendix/functions/trends).

[comment]: # ({/3296f4fc-6781ee38})

[comment]: # ({a1248f68-1fa7644e})
#### Período de avaliação

Um período de avaliação é usado em funções que fazem referência ao histórico do item.
Ele permite especificar o intervalo no qual estamos interessados. Ele pode ser
especificado como período de tempo (30s, 10m, 1h) ou como um intervalo de valores (\#5 - para
os cinco valores mais recentes).

O período de avaliação é medido até "agora" - onde "agora" é o
horário do recálculo mais recente do trigger (consulte [Horário de
cálculo](#calculation-time) acima); "agora" não é o horário "agora" do
server.

O período de avaliação especifica um dos seguintes:

-   Considerar todos os valores entre "agora-período de tempo" e "agora" (ou, com
    deslocamento de tempo, entre "agora-deslocamento de tempo-período de tempo" e
    "agora-deslocamento de tempo")
-   Considerar no máximo a contagem num de valores do passado, até
    "agora"
    -   Se houver 0 valores disponíveis para o período de tempo ou a contagem num
        especificados, então o trigger ou item calculado que usa essa
        função se tornará não suportado

Observe que:

-   Se apenas uma única função (que faz referência ao histórico de dados) for usada no
    trigger, "agora" será sempre o valor recebido mais recentemente. Por exemplo, se
    o último valor foi recebido há uma hora, o período de avaliação será
    considerado até o valor mais recente de uma hora atrás.
-   Um novo trigger é calculado assim que o primeiro valor é recebido
    (funções de histórico); ele será calculado em até 30 segundos para as
    funções [date and time](/manual/appendix/functions/time) e [nodata()](/manual/appendix/functions/history#nodata). Assim, o trigger será calculado mesmo
    que talvez o período de avaliação definido (por exemplo, uma hora) ainda
    não tenha passado desde que o trigger foi criado. O trigger também
    será calculado após o primeiro valor, mesmo que o intervalo de avaliação
    tenha sido definido, por exemplo, para os dez valores mais recentes.

[comment]: # ({/a1248f68-1fa7644e})

[comment]: # ({53f36bf7-cad1df72})
#### Status desconhecido

É possível que um operando desconhecido apareça em uma expressão de trigger se:

-   um item não suportado for usado
-   a avaliação da função para um item suportado resultar em erro

Neste caso, uma trigger geralmente é avaliada como "desconhecida" (embora haja algumas exceções). Para mais detalhes, veja [Expressões com operandos desconhecidos](/manual/config/triggers/expression#expressions-with-unknown-operands).

É possível [ser notificado](/manual/config/events/sources#internal-events) sobre triggers desconhecidas.

[comment]: # ({/53f36bf7-cad1df72})

