Os gatilhos são expressões lógicas que "avaliam" os dados reunidos por itens e representam o atual estado do sistema.
Enquanto itens são usados para reunir dados de sistema, é altamente pouco prático acompanhar estes dados o tempo todo esperando por uma condição de alarme ou que mereça atenção. O trabalho de "avaliação" dos dados pode ser delegada às expressões de gatilho.
Expressões de gatilho permitem definir um limite de que estado de dado é "aceitável". Portanto, caso um dado de entrada ultrapasse o estado aceitável, um gatilho é "disparado" - ou altera o estado para PROBLEMA.
Um gatilho pode ter os seguintes estados:
VALOR | DESCRIÇÃO |
---|---|
OK | Este é um estado normal do gatilho. |
PROBLEMA | Normalmente significa que algo aconteceu. Por exemplo, a carga de processador está muito alta. |
Em um gatilho básico nós podemos querer configurar um limite para uma média de cinco minutos de algum dado, por exemplo, a carga de CPU. Isto é realizado pela definição de uma expressão de gatilho onde:
Este gatilho "disparará" (se tornará PROBLEMA) se a média de cinco minutos estiver acima de 2.
Em um gatilho 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 gatilho.
A maioria das expressões de gatilho são avaliadas com base nos dados históricos, enquanto algumas funções de gatilho para análises de longo prazo, p.e. trendavg(), trendcount(), etc, usam dados estatísticos.
Após ativar 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 assim que o momento de lidar com a função time-based chegue.
A maioria das funções de trigger são avaliadas com base nos dados de histórico do item history , enquanto algumas funções de trigger para análise de longa prazo, como trendavg(), trendcount(), etc, utilizam dados de tendência.
Um trigger é recalculado toda vez que o servidor do Zabbix recebe um valor novo que é parte da expressão. Quando um valor novo é recebido pelo servidor, cada função, que está incluída na expressão, é recalculada (não apenas aquela que recebe um valor novo). Além disso, um trigger é recalculado toda vez quando um valor novo é recebido e a cada 30 segundos, se as funções time-based são usadas na expressão. As funções Time-based são semdado(), data(), diadomês(), diadasemana(), hora(), agora() . Essas funções são recalculadas a cada 30 segundos pelo processo de sincronização de histórico do Zabbix. Triggers que referenciam funções trend serão avaliados apenas uma vez no menor período de tempo na expressão. Ver tambémtrend functions.
Um período de avaliação é usado em funções que referenciam o histórico de um item. Ele permite especificar o intervalo no qual estamos interessados. Ele pode ser especificado como um período de tempo (30s, 10m, 1h) ou como um intervalo de valores (#5 - para os últimos cinco valores).
O período de avaliação é medido até "agora" - onde "agora" é o último tempo de recálculo do gatilho (veja Cálculo de tempo acima); "agora" não é o horário de "agora" do servidor.
O período de avaliação especifica um de:
Note que:
É possível que um operando desconhecido apareça em uma expressão de trigger se:
Nesse caso, um trigger geralmente é avaliado como "desconhecido" (embora haja algumas exceções). Para mais detalhes, consulte Expressions with unknown operands.
É possível receber notificações get notified sobre triggers desconhecidos.