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. |
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().
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 servidor Zabbix 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 de 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 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 momento mais recente 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, consulte Expressões com operandos desconhecidos.
É possível ser notificado sobre triggers desconhecidas.