触发器示例
示例 1——————————————————————————————————————————————
触发器名称:Processor load is too high on www.zabbix.com。触发器表达式如下:
{www.zabbix.com:system.cpu.load[all,avg1].last()}>5
“www.zabbix.com:system.cpu.load[all,avg1]” 给出了被监控对象参数的简短名称。它指定了服务器是“www.zabbix.com”,监控项的键值是“system.cpu.load[all,avg1]”。通过使用函数“last()”获取最近一次获取的值。最后,“>5”表示来自主机www.zabbix.com的最后一次获取的负载值大于5时触发器就会进入PROBLEM状态。
示例 2——————————————————————————————————————————————
触发器名称:www.zabbix.com is overloaded。触发器表达式如下:
{www.zabbix.com:system.cpu.load[all,avg1].last()}>5 or {www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2
当负载大于5或者最近10分钟内负载大于2,表达式为“TURE”,就会使触发器进入PROBLEM状态。
示例 3——————————————————————————————————————————————
触发器名称:/etc/passwd has been changed。触发器表达式如下:
使用了函数“diff“:
{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff()}=1
当文件/etc/passwd检查的checksum值与最近的值不同时,表达式为“TURE”,就会使触发器进入PROBLEM状态。 同样的表达式还可以用于监控重要的文件,比如文件/etc/passwd、/etc/inetd.conf、/kernel等等。
示例 4——————————————————————————————————————————————
触发器名称:Someone is downloading a large file from the Internet。触发器表达式如下:
使用函数“min”:
{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K
当网络适配器“eth0”在5分钟内接收的字节大于100KB,表达式为“TURE”,就会使触发器进入PROBLEM状态。
示例 5——————————————————————————————————————————————
触发器名称:Both nodes of clustered SMTP server are down。触发器表达式如下:
注意:在同一个表达式中使用了两个不同的主机
{smtp1.zabbix.com:net.tcp.service[smtp].last()}=0 and {smtp2.zabbix.com:net.tcp.service[smtp].last()}=0
当SMTP服务器“smtp1.zabbix.com”和“smtp2.zabbix.com”都停止,表达式为“TURE”,就会使触发器进入PROBLEM状态。
示例 6——————————————————————————————————————————————
触发器名称:Zabbix agent needs to be upgraded。触发器表达式如下:
使用函数“str()”:
{zabbix.zabbix.com:agent.version.str(“beta8”)}=1
如果Zabbix agent有beta8版本(大概为1.0beta8),表达式为“TURE”,就会使触发器进入PROBLEM状态。
示例 7——————————————————————————————————————————————
触发器名称:Server is unreachable。触发器表达式如下:
{zabbix.zabbix.com:icmpping.count(30m,0)}>5
当主机“zabbix.zabbix.com”在30分钟内超过5次不可达,表达式为“TURE”,就会使触发器进入PROBLEM状态。
示例 8——————————————————————————————————————————————
触发器名称:No heartbeats within last 3 minutes。触发器表达式如下:
使用函数“nodata()”:
{zabbix.zabbix.com:tick.nodata(3m)}=1
‘tick’必须为’Zabbix trapper’类型。为了使这个触发器工作,监控项’tick’必须要定义,这个主机应使用zabbix_sender定期发送此参数的数据,如果在180秒内还未收到zabbix_sender发送的数据,那么触发器的状态就会变成PROBLEM。
示例9——————————————————————————————————————————————
CPU activity at night time 触发器的名称为:CPU activity at night time
使用了函数time():
{zabbix:system.cpu.load[all,avg1].min(5m)}>2 and {zabbix:system.cpu.load[all,avg1].time()}>000000 and {zabbix:system.cpu.load[all,avg1].time()}<060000
只有在凌晨0点到6点整,最后5分钟内cpu load大于2,触发器的状态才会变更为PROBLEM。
示例 10——————————————————————————————————————————————
触发器名称:Check if client local time is in sync with Zabbix server time 使用了函数fuzzytime():
{MySQL_DB:system.localtime.fuzzytime(10)}=0
当MySQL_DB的本地时间与Zabbix server之间的时间相差10秒以上,就会使触发的状态变更为PROBLEM。
示例 11——————————————————————————————————————————————
触发器名称为:Comparing average load today with average load of the same time yesterday (using a second time_shift parameter).
{server:system.cpu.load.avg(1h)}/{server:system.cpu.load.avg(1h,1d)}>2
This expression will fire if the average load of the last hour tops the average load of the same hour yesterday more than two times. 如果最后一小时的平均cpu load超过前一天的同一小时两倍,就会使触发器的状态变更为PROBLEM。
示例 12——————————————————————————————————————————————
使用了另一个监控项来获得触发器的阈值:
{Template PfSense:hrStorageFree[{#SNMPVALUE}].last()}<{Template PfSense:hrStorageSize[{#SNMPVALUE}].last()}*0.1
如果hrStorageFree低于10%,就会使触发器的状态变更为PROBLEM。
示例 13——————————————————————————————————————————————
使用 evaluation result 来获取触发器的数量超过阈值。
({server1:system.cpu.load[all,avg1].last()}>5) + ({server2:system.cpu.load[all,avg1].last()}>5) + ({server3:system.cpu.load[all,avg1].last()}>5)>=2
如果表达式中的两个触发器表达式的结果大于5,就会使触发器的状态变更为PROBLEM。