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 que mereça atenção. O trabalho de "avaliar" os dados pode ser deixado para as 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. |
Em uma 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
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.
Triggers não podem ser criadas 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().
A maioria das funções de trigger são avaliadas com base nos dados de valor do item history, enquanto algumas funções de trigger para análise de longo prazo, por exemplo, trendavg(), trendcount(), etc, usam dados de tendência.
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 que está incluída na expressão é recalculada (não apenas a 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 data e hora e/ou nodata() forem usadas na expressão.
As funções 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 horário mais recente de recálculo do trigger (veja Tempo de cálculo acima); "agora" não é o horário atual 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 existam algumas exceções). Para mais detalhes, consulte Expressões com operandos desconhecidos.
É possível ser notificado sobre triggers desconhecidas.