3 Triggers
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. |
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.
Triggers não podem ser criadas para items que retornam valores com o tipo de dado binário.
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.
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 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.
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 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:
- 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 quantidade de valores definida pelo parâmetro num do passado, até "agora"
- Se não houver valores disponíveis para o período de tempo ou quantidade especificada, o trigger ou item calculado que usa essa função se tornará não suportado
Observe que:
- Se apenas uma única função (referenciando o histórico de dados) for usada no trigger, "agora" é sempre o valor mais recente recebido. 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 de data e hora e 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.
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.
É possível ser notificado sobre triggers desconhecidas.