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.
After enabling a trigger (changing its configuration status from Disabled to Enabled), the trigger expression is evaluated as soon as an item in it receives a value or the time to handle a time-based function comes.
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.
A trigger is recalculated every time Zabbix server receives a new value that is part of the expression. When a new value is received, each function that is included in the expression is recalculated (not just the one that received the new value).
Additionally, a trigger is recalculated each time when a new value is received and every 30 seconds if time-based functions are used in the expression.
Time-based functions are nodata(), date(), dayofmonth(), dayofweek(), time(), now(); they are recalculated every 30 seconds by the Zabbix history syncer process.
Triggers that reference trend functions only are evaluated once per the smallest time period in the expression. See also trend 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:
It is possible that an unknown operand appears in a trigger expression if:
In this case a trigger generally evaluates to "unknown" (although there are some exceptions). For more details, see Expressions with unknown operands.
It is possible to get notified on unknown triggers.