diff
diff主要用于检查是否最后一次和以前的值不同,支持浮动,INT,STR,文本,日志,返回1则最近的值与之前的值不同,0则是其他状态(无变化)web如:{www.linuxea.com:agent.version.diff(0)}>0
如上,如果agent版本大于0则发送变化就会触发{www.linuxea.com:[vfs.file.cksum[/etc/passwd]].diff(0)}>0如上,如果passwd文件发送变化,发送变化则会大于0,则触发
forecast
这是在zabbix3.0的新版本中预测和趋势预测的新特性,对未来值,最大值,最小值,三角形或项目的平均做检查,支持浮动,INT,返回值最大为999999999999,最小为-999999999999如果基于历史数据进行预测,可以判断何时出现故障,如果基于1小时的数据分析未来三小时的状态,在3.0中提供了timeleft和forecast用于趋势预测timeleft:达到阈值需要多久时间,多久的时间可以达到阈值
参数说明:
timeleft(sec|#num,<time_shift>,threshold,<fit>)
sec表示时间,可以使用600,10m这种方式num 表示最近获取到值的次数,如#4,则是最近4次sec和num是必选的参数time_shift:时间偏移,50s,过去50秒,15m,过去十分钟,1h,过去一小时
threshold:阈值`forecast(#10,,1h) :根据最近的10个值来判断未来1个小时内发生的数forecast(1h,,30m) :根据1小时的历史数据来判断未来30分内发生的数forecast(1h,1d,12h):根据一天前最近的一小时来判断未来12小时的数据走向大小forecast(1h,,10m,exponential):根据最近一小时的数据判断10分钟的指数forecast(1h,,2h,polynomial3,max): 根据1小时的历史数据来判断后2小时数据变化的最大值这只是部分信息,如果存在错误,请到官网查证https://www.zabbix.com/documentation/3.4/manual/appendix/triggers/functions`
示例:
{www.linuxea.com:vfs.fs.size[/,free].forecast(1h,,10h)}<=0
用当前1小时历史数据占用磁盘的大小,判断10个小时候预测的值的字节如果为0时,则会触发也可以将数值转换其结果不变{www.linuxea.com:vfs.fs.size[/,free].timeleft(1h,,0)}<=10h
fuzzytime
检查项目时间戳值从服务器的zabbix时间有多少不同,支持值类型:float、int,返回值为1,表示监控项值的时间戳比zabbix服务端的时间多N秒,0为其他情况。常使用system.localtime来检查本地时间是否与zabbix服务器的时间相同示例:数据库时间检测{MySQL_DB:system.localtime.fuzzytime(10)}=0
如果数据库mysql_db的时间和系统时间10s一直不一致则触发{www.linuxea.com:system.localtime.fuzzytime(60)}=0
如果时间超过差异超过60s一直不一致则触发
iregexp
这个功能是正则表达式的非区分大小写类似物(),参数:第一个为字符串、第二个为秒或#num,支持值类型:str、log、text。描述:与regexp类似,区别是不区分大小写[str|text|log].regexp(string,sec#num)
检查最近一次的返回值是不是正则匹配string,第二个参数定义的时间或次数中所有的数据都会进行检查,成功匹配返回1,反之返回0
[str|text|log].iregexp(string,sec#num)
与regexp功能相同,只是string不区分字母大小写。