Zabbix触发器函数学习
本文主要讲述zabbix触发器函数.
1.abschange
参数:缺省
值类型:float, int, str, text, log
返回值解析: Returns absolute difference between last and previous values.
For strings:
0 - values are equal
1 - values differ
`abschange函数`
对于数字类型的处理方式:返回最后一个值和倒数第二个值的绝对不同,也就是返回一个正数
对于字符串类型的处理方式:返回0说明值没变化,返回1说明值有变化
2.change
参数:缺省
值类型:float, int, str, text, log
返回值解析: Returns difference between last and previous values.
For strings:
0 - values are equal
1 - values differ
`change函数`
对于数字类型的处理方式:返回最后一个值和倒数第二个值的差,也就是返回一个数值,可正可负可为零
对于字符串类型的处理方式:返回0说明值没变化,返回1说明值有变化
3.avg
参数:sec or #num
值类型:float, int
返回值解析:
一段时间的平均值.这段时间可以设置为秒或者一个收集值的个数(前面用一个#符号,例如:#5-最近5个值),这是第一个参数
函数接收秒,也可以是一个时间段,当需要对比当前平均值和指定时间段的时候,非常有用.例如:avg(3600,86400)将会返回一天前的一小时内的平均值.
参数 **时间段**从1.8.2开始支持.
4.band
参数:sec or #num
值类型:int
返回值解析:
返回值 为一个监控项和一个掩码的按位与.
第一个参数为秒或者#num
第二个参数是掩码(强制性的)是一个64位无符号整数.(0 - 18446744073709551615).
第三个参数是time_shift
这个函数从zabbix2.2.0开始支持.
5.count
参数:sec or #num
值类型:float, int, str, text, log
返回值解析:
一段时间内采集值的个数.这段时间可以设置成秒或者一个数字(用#前缀,表示多少个),这是第一个参数.
函数接收第二个可选参数和第三个可选参数以及第四个time_shift参数.
对于样式:正数值-精确匹配;浮点值-匹配到0.000001
支持操作符:
eq-等于
ne-不等于
gt-大于
ge-大于等于
lt-小于
le-小于等于
like-包含
band-按位与. 这个函数从zabbix2.2.0开始支持.
如果有band参数,则第二个参数为分数形式,比较值/掩码
如果按位与的结果等于被比较数,则值被计数一次,如果被计较值和掩码相等,只需要指定掩码,无需/.
对于整形监控项:操作符eq(默认),ne, gt, ge, lt, le, band 均被支持.
对于浮点型监控项:操作符eq(默认),ne, gt, ge, lt, le, band 均被支持.
对于字符串,文本和log监控项:操作符like(默认的),eq,ne均被支持.
例子:
count(600) -最近十分钟值的个数.
count(600,12) - 最近十分钟的值为12的个数.
count(600,12,"gt") - 最近十分钟的值大于12的个数.
count(#10,12,"gt") - 最近10个值大于12的个数.
count(600,12,"gt",86400) - 一天前最近十分钟的值大于12的个数.
count(600,6/7,"band") - 最近十分钟监控项有二进制有110的个数.
count(600,,,86400) - 一天前最近十分钟值的个数.
#num 参数从Zabbix 1.6.1开始支持.
time_shift 参数从zabbix1.8.2开始支持.
6.date
参数:缺省
值类型:any
返回值解析:
返回当前日期,以YYYYMMDD格式.例如:20031025
7.dayofmonth
参数:缺省
值类型:any
返回值解析:
返回一个月(1~31)中的天.这个函数从1.8.5开始支持.
8.dayofweek
参数:缺省
值类型:any
返回值解析:
返回一周中的某一天.例如:Mon-1 ,sun-7
9.delta
参数:sec or #num
值类型:float, int
返回值解析:
返回一段时间内最大值和最小值的不同.可以通过设置第一个参数为秒和#.
从1.8.2版本起,支持秒和可选的time_shift参数.例子参考avg()函数.
10.diff
参数:缺省
值类型:float, int, str, text, log
返回值解析:
1-最后一个和倒数第二个值不同
0-相反
11.fuzzytime
参数:sec
值类型:float, int
返回值解析:
返回值为1,如果和zabbix server的时间戳相差N秒,否则为0
痛楚使用system.localtime来监测本地时间是否与zabbix server同步
12.iregexp
参数:1st - string, 2nd - sec or #num
值类型:str, log, text
返回值解析:
本函数是对于大小写不敏感的正则表达式.
13.last
参数:sec or #num
值类型:float, int, str, text, log
返回值解析:
最近最新的值,参数:
sec-忽略
#num-最近的N个值
例如:
last(0)也等于last(#1)
last(#3)-最近的第三个值
last也支持time_shift参数,例如:last(0,86400)将返回一天前的最近值.
zabbix不能保证值的精确顺序,如果在历史记录里面一秒钟存在两个值的话.
参数#num从zabbix1.6.2开始支持.
参数time_shift从zabbix1.8.2开始支持.
15.logseverity
参数:缺省
值类型:log
返回值解析:
返回最后获得的log条目的级别,参数缺省.
0- 默认级别
N-级别(整数,对于windows时间log有用:1 - Information, 2 - Warning, 4 - Error, 7 - Failure Audit, 8 - Success Audit, 9 - Critical, 10 - Verbose)
Zabbix 采集log级别从windows的日志系统.
16.logsource
参数:string
值类型:log
返回值解析:
检查最新的log条目是否和参数匹配.
0-不匹配
1-匹配
一般针对于windows事件log.例如: logsource("VMware Server").
17.max
参数:sec or #num
值类型:float,int
返回值解析:
一段时间的最大值.这段时间可以设置为秒或者一个收集值的个数(前面用一个#符号,例如:#5-最近5个值),这是第一个参数
从zabbix1.8.2开始支持秒,可选参数time_shift.
18.min
参数:sec or #num
值类型:float,int
返回值解析:
一段时间的最小值.这段时间可以设置为秒或者一个收集值的个数(前面用一个#符号,例如:#5-最近5个值),这是第一个参数
从zabbix1.8.2开始支持秒,可选参数time_shift.
19.nodata
参数:sec
值类型: any
返回值解析:
返回值1-如果一段时间没有接收到数据,时间段不应该少于30s
返回值0-相反
20.now
参数:缺省
值类型:any
返回值解析:
返回自从1970年1月1日00:00:00来的秒数.
21.prev
参数:缺省
值类型:float, int, str, text, log
返回值解析:
返回历史值,参数缺省.
类似last(#2)
22.regexp
参数:1st - string, 2nd - sec or #num
值类型: str, text, log
返回值解析:
检查最新值是否匹配正则表达式.参数为正则表达式,POSIX扩展格式.
第二个可选参数是用来采集数据的秒数或者收集值的数量.这样的情况下,将有一个以上的值被处理.
这个函数大小写敏感.
返回值为0:发现有匹配的
返回值为1:没有发现匹配的
23.str
参数:1st - string, 2nd - sec or #num
值类型:str, text, log
返回值解析:
发现最新值中的字符串,参数为定义被发现的字符串,大小写敏感.
第二个可选参数是用来采集数据的秒数或者收集值的数量.这样的情况下,将有一个以上的值被处理.
返回值为0:发现有匹配的
返回值为1:没有发现匹配的
24.strlen
参数:sec or #num
值类型:str, text, log
返回值解析:
最新值(字符)的长度
参数 和last的类似.
例如:
strlen(0) 等同于 strlen(#1)
strlen(#3) - 最新的第三个值的长度
strlen(0,86400) - 一天前最新值的长度
25.sum
参数:sec or #num
值类型:float, int
返回值解析:
一段时间内采集值求和.这段时间可以设置成秒或者一个数字(用#前缀,表示多少个),这是第一个参数.
从zabbix1.8.2开始支持秒,可选参数time_shift.