1、触发器表达式
触发器表达式的格式为
{<server>:<key>.<function>(<parameter>)}<operator><constant>
某主机上某个key使用某个函数(参数)所得的值 和 设定的值比较
server:主机名称
key:主机上相应监控项的key
function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采取的数据、当前时间及其它因素进行
2、触发器表达式支持的函数
avg 求平均值
count 指定时间内或次数内数值统计
change 指定时间内或次数内倒数第2次于倒数第1次的差值,对于字符串,0没有变化,1表示有变化;
date 当前日期
dayofweek 本周第几天 dayofmonth 本月第几天
delta 指定时间内或次数内最大值与最小值的差
diff 指定时间内或次数内倒数第2次于倒数第1次的值,有没有不同;常用于监控文件
regexp 检查最后一次采样的数据是否能够被指定的模式所匹配:1表示匹配,0表示不匹配
iregexp 不区分大小的正则表达式
last 最近采样的数据
max、min、nodata没有数据
now 返回时间戳
prev 倒数第二个采样值
str 从最后一次的采样中查找此处指定的字符串;0表示找到,1表示没找到
strlen 字符串长度比较
sum 求和
3、触发器实例
触发器可以创建在模板或者某台主机上
例一:自定义触发器监控登录用户数,zabbix的Template OS Linux模板中有Number of logged in users监控项,即监控当前登录的用户数,可以自定义触发器来监控登录个数,当触发某个阈值如3的时候就发送报警
点击:配置——>主机,选择主机,点击——>触发器——>创建触发器
触发器名称
创建触发器表达式
对触发器进行触发报警测试
查看动作日志
例二:监控平均一分钟内的cpu负载,操作步骤同上
触发器表达式为{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5
最新的CPU负载值如果大于5,那么表达式会返回true,这样一来触发器状态就改变为"problem"了
例三:监控/etc/passwd文件是否被修改(系统自带监控项)
触发器表达式为{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff(0)}>0
最新的checksum与上一次获取到的checksum不同,表达式将会返回true. 我们可以使用同样的方法监控系统重要的配置文件,例如/etc/passwd,/etc/inetd.conf等等
例四:监控主机网卡流量
触发器表达式为{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K
当主机网卡eth0最后5分钟内接收到的流量超过100KB那么触发器表达式将会返回true
例五:监控主机是否可达
触发器表达式为{zabbix.zabbix.com:icmpping.count(30m,0)}>5
表示最近30分钟zabbix.zabbix.com这个主机超过5次不可到达