"监控项"仅负责收集数据,而通常搜集数据的目的还包括在某指标对应的数据超出合理范围是给的相关人员发送的告警信息,"触发器"正是用于监控项所收集的数据定义阈值。
每一个触发器仅能关联至一个监控项,但可以为一个监控项同时使用多个触发器。
事实上,为一个监控项定义多个具有不同阈值的触发器,可以实现不同级别的报警功能。
一个触发器有一个表达式构成,它定义了监控项所采取的数据的一个阈值。
一旦某次采集的数据超出了此触发器定义的阈值,触发器状态会转换为"Problem";而当采取的数据再次回归至合理范围内时,其状态将重新返回到"OK"。
触发器表达式具有高度的灵活性,可以创建出非常复杂的测试条件。
基本的触发器表达式格式如下所示:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
server:主机名称
key:主机上关系的相应监控项的key
function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采取的数据、当前时间及其他因素进行;
目前,触发器所支持的函数有avg、count、change、date、dayofweek、delta、diff、iregexp、last、max、min、nodata、now、sum等
parameter:函数参数;大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用"#"做为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;
此外,avg、count、last、min和max还支持使用第二个参数,用于完成时间限定;例如:max(1h,7d)将返回一周之前的最大值;
operator:表达式所支持的运算符及其功能如下表所示:
PRIORITY | OPERATOR | DEFINITION |
---|---|---|
1 | - | Unary minus |
2 | not | Logical NOT |
3 | * | Multiplication |
/ | Division | |
4 | + | Arithmetical plus |
- | Arithmetical minus | |
5 | < | Less than. The operator is defined as: A<B (A<=B-0.000001) |
<= | Less than or equal to. | |
> | More than. The operator is defined as: A>B (A>=B+0.000001) | |
>= | More than or equal to. | |
6 | = | Is equal. The operator is defined as: A=B (A>B-0.000001) and (A<B+0.000001) |
<> | Not equal. The operator is defined as: A<>B (A<=B-0.000001) or (A>=B+0.000001) | |
7 | and | Logical AND |
8 | or | Logical OR |
一个例子:
{www.wlm.com:system.cpu.load[all,avg1].last(0)}>3
表示主机www.wlm.com上所有CPU的过去1分钟的平均负载的最后一次取值大于3时将触发状态变换
对last函数来说,last(0)相当于last(#1)
触发器间的依赖关系:
在一个网络中,主机的可用性之间可能存在依赖关系
例如,当某网关主机不可用是,其背后的所有主机都将无法正常访问,如果所有主机都配置了触发器并定义了相关的通知功能,行管人员将会接收到许多告警信息,这既不利于快速定位问题,也会浪费资源。正确定义的触发器依赖关系可以避免类似的情况发生,它将使用通知机制仅发送最根本问题的告警。
注意:目前zabbix不能够直接定义主机的依赖关系,其依赖关系仅能通过触发器来定义。
触发器等级用于表示事件的严重性。
zabbix支持如下所示的等级:
SEVERITY | DEFINITION | COLOUR |
---|---|---|
Not classified | Unknown severity. | Grey |
Information | For information purposes. | Light blue |
Warning | Be warned. | Yellow |
Average | Average problem. | Orange |
High | Something important has happened. | Light red |
Disaster | Disaster. Financial losses, etc. | Red |
创建触发器可用的各属性说明:
name:触发器名称,可以使用宏,如$1、$2、......、$9等
Expression:逻辑表达式,用于评估触发器状态
Multiple PROBLEM events generation:依赖于当前触发器的"Problem"状态生成其他事件
Description:当前触发器的描述信息
URL:在screen的"Status of Trigger"中显示的内容的链接
Severity:当前触发器的严重级别
Enabled:是否启用当前触发器