Triggers são expressões lógicas que "avaliam" os dados coletados por 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 que 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, um trigger é "disparado" - ou muda seu status para PROBLEM.
Um trigger pode ter os seguintes status:
| Status | Descrição |
|---|---|
| OK | Este é o status normal do trigger. |
| Problem | Algo aconteceu. Por exemplo, a carga do processador está muito alta. |
| Unknown | O valor do trigger não pode ser calculado. Veja Status desconhecido. |
Em um trigger simples, podemos querer definir um limite para uma média de cinco minutos de algum dado, por exemplo, a carga da CPU. Isso é feito definindo uma expressão de trigger onde:
avg(/host/key,5m)>2
Este trigger será "disparado" (se tornará PROBLEM) se a média de cinco minutos for maior que 2.
Em um trigger mais complexo, a expressão pode incluir uma combinação de múltiplas funções e múltiplos limites. Veja também: Expressão de trigger.
Triggers não podem ser criados para items com valores binários.
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 e/ou nodata().
Most trigger functions are evaluated based on item value history data, while some trigger functions for long-term analytics, e.g. trendavg(), trendcount(), etc, use trend data.
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 e/ou nodata() forem usadas na expressão.
As funções de data e hora e/ou 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.
Um período de avaliação é usado em funções que fazem referência ao histórico do item. Ele permite especificar o intervalo de tempo que nos interessa. Pode ser especificado como um 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é o "agora" - onde "agora" é o último tempo de recálculo do trigger (veja Tempo de cálculo acima); "agora" não é o tempo "agora" do server.
O período de avaliação especifica:
Observe que:
É possível que um operando desconhecido apareça em uma expressão de trigger se:
Neste caso, uma trigger geralmente é avaliada como "desconhecida" (embora haja algumas exceções). Para mais detalhes, veja Expressões com operandos desconhecidos.
É possível ser notificado sobre triggers desconhecidas.