Triggers are logical expressions that "evaluate" data gathered by items and represent the current system state.
While items are used to gather system data, it is highly impractical to follow these data all the time waiting for a condition that is alarming or deserves attention. The job of "evaluating" data can be left to trigger expressions.
Trigger expressions allow to define a threshold of what state of data is "acceptable". Therefore, should the incoming data surpass the acceptable state, a trigger is "fired" - or changes its state to PROBLEM.
A trigger may have the following state:
|OK||This is a normal trigger state.|
|Problem||Something has happened. For example, the processor load is too high.|
|Unknown||The trigger value cannot be calculated. See Unknown state.|
Trigger state (the expression) is recalculated every time Zabbix server receives a new value that is part of the expression.
Triggers are evaluated based on history data only; trend data are never considered.
If time-based functions (nodata(), date(), dayofmonth(), dayofweek(), time(), now()) are used in the expression, the trigger is recalculated also every 30 seconds by a Zabbix history syncer process.
You can build trigger expressions with different degrees of complexity.
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.