常用Zabbix_Trigger_Function

  sre

常用触发器函数,截止到3.2版本
<>为可选参数

abschange
	前后两值只差的绝对值,支持类型float, int, str, text, log,字符串相等返回0,不等返回1
	如:
		(previous value;last value=abschange)
		3;1=2
		0;-2.5=2.5
avg (sec|#num,)
	返回指定时间间隔的平均值。第一个参数默认是秒,加#则代表最近次数;若有第二个参数,代表漂移。
	如:
		avg(5)			5秒均值
		avg(5#)		最近5次均值
		avg(1h,1d)	昨日的一小时均值
band (sec|#num,mask,)
	b-and 项目值和掩码的“按位与”的值。mask是64位无符号整数。
	#号指的是最近第N个,而不再是范围。
	虽然比较是以位方式进行的,但是所有的值必须以十进制提供和返回:
	band(,12)=8
	band(,20)=16 
change
	本次与上次值的代数差,支持类型float, int, str, text, log,字符串相等返回0,不等返回1
	如:
		(previous value;last value=abschange)
		3;1=2
		0;-2.5=-2.5 #与abschange的区别
count (sec|#num,,,)
	返回指定时间间隔内的数值统计。
	pattern对比样本,可不传 	,监控项的值为整数(iteger)时使用精确匹配,监控项的值为浮点型   (float)时允许偏差0.0000001。
	operator操作,可不传 ,支持操作:
		 eq:相等       ne:不相等     gt:大于     lt:小于     ge:大于或等于      le:小于或等于      like:内容匹配
		 对于整数和浮点型的监控项目,支持eq(default),ne、gt、ge、lt、le
		 对于string、text、log监控项,支持like(default)、eq、ne
	例如:
			   count(10m):最近10分钟值的个数
	
               count(10m,12):最近10分钟值等于12的个数	eq可不传

               count(10m,12,"gt"):最近10分钟值大于12的个数

               count(#10,12,"gt"):最近10个值中,值大于12的值的个数

               count(600,12,"gt",1d):24小时前的前10分钟数据中,值大于12的个数

               count(600,,,1d):24小时前的前10分钟值的个数
date
	YYYYMMDD 返回当前时间
	
dayofmonth
	1-31格式返回当前日期
dayofweek
	1-7格式返回当前星期 (Mon - 1, Sun - 7)
delta (sec|#num,)
	返回指定时间间隔内的最大值与最小值的差值(max()-min())
	支持数据类型 float, int
diff
	比较本次与上次返回值的一致性 不同为1,否则为0
	支持数据类型 float, int, str, text, log
forecast (sec|#num,,time,,)
	3.0支持预测。3.2.2支持负时间值。
	预测:项目值,最大值,最小值,增量或平均值。 支持数据类型float, int
	sec|#num 评估周期   time_shift (optional) 
	time 预测范围 s为单位
	fit适配(可选) - 用于拟合历史数据的函数
		支持的fit:
			linear  - 线性函数
			polynomialN  N次多项式N多项式(1 <= N <= 6)
			exponential 	指数函数
			logarithmic  - 对数函数
			power 幂函数
	如果返回值大于999999999999.9999或小于-999999999999.9999,则返回值将相应裁剪为999999999999.9999或-999999999999.9999
	在表达式中使用错误项类型,无效的参数,则返回值为-1
	例如:
		forecast(#10,,1h) →基于最后10个值预测1小时后的项目值
		forecast(1h,,30m) →基于最近1小时数据预测30分钟后的项目值
		forecast(1h,1d,12h) → 基于昨天最近1小时数据预测12小时后的项目值
		forecast(1h,,10m,exponential) → 基于最近1小时和指数趋势预测10分钟后的项目值
		forecast(1h,,2h,polynomial3,max) → 基于前一小时数据和三次(立方)多项式函数预测下两个小时项目值的最大值
		forecast(#​2,,​-20m) →基于最后两次值预测20分钟前的项目值(可以比使用last()或prev()更精确,特别是如果项目更新很少,比如每小时一次)
fuzzytime (sec)
	比较检测项的时间戳与zabbix_server时间的差别,支持数据类型 float, int	返回值为1,表示监控项值的时间戳比zabbix_server的时间超N秒,0为其他情况。
	常使用system.localtime来检查本地时间是否与zabbix_server的时间相同。
	也可用vfs.file.time[/path/file,modify] 这个值来检查文件长时间得不到更新。
		如:fuzzytime(60)=0  说明时间差超过60s
last (sec|#num,)
	最近值
	注意,#num与许多其他函数不同,指第几。
	如:	
		last()  相当于last(#1) 倒数第一次
		last(#3) third most recent  倒数第三次,只是一个,不是倒数三次的三个
logeventid (pattern)
	参数 string
	检查最近的日志条目的EventId是否匹配正则表达式。参数为正则表达式、POSIX扩展样式。当返回值为0时,表示不匹配,1表示匹配。
	支持值类型:log
	
logseverity
	返回最近日志条目的日志等级(log severity)。当返回值为0时,表示默认等级,N为具体对应的等级(整数,常用于Windows event logs)
	 1 - Information, 2 - Warning, 4 - Error, 7 - Failure Audit, 8 - Success Audit, 9 - Critical, 10 - Verbose
	 zabbix从windows事件日志的Information 区域获取等级。
logsource
	检查最近的日志条目是否匹配参数的日志来源。当返回值为0时,表示不匹配,1表示匹配。
	常用于Windows事件日志,如logsource("VMware Server").
max (sec|#num,)
	最大值
min (sec|#num,)
	最小值
nodata (sec)
	当返回值为1时,表示指定的间隔(间隔不应小于30s)没有接收到数据,0表示其他情况
	以下情况,这个函数在sec周期内将报错,错误显示在触发器配置中的信息列中:
		无数据,Zabbix服务器重新启动
		无数据,维护完毕
		无数据,监控项新增或重载
now
	返回距离Epoch(1970年1月1日 00:00:00 UTC)时间的秒数
percentile (sec|#num,,percentage)
	周期的P百分位数,其中P(百分比)由第三个参数指定。
	percentage - 一个0到100(含)之间的浮点数,小数点后最多4个数字
prev
	返回之前的值,类似于last(#2)
	
regexp (pattern,)
	检查最近的值是否匹配正则表达式,参数的正则表达式为POSIX扩展样式,第二个参数为秒数或收集值的数目,将会处理多个值。本函数区分大小写,当返回值为1时,表示找到,0为其他情况
iregexp (pattern,)
	与regexp类似,区别是不区分大小写
str (pattern,)
	查找最近值中的字符串。第一个参数指定查找的字符串,大小写敏感。
	第二个可选的参数指定秒数或收集值的数目,将会处理多个值。
	当返回值为1时,表示找到,0为其他情况
strlen (sec|#num,)
	指定最近值的字符串长度(并非字节),参数值类似于last函数。
	例如,strlen(0)等价于strlen(#1),strlen(#3)表示最近的第三个值,strlen(0,86400)表示一天前最近的值。
sum (sec|#num,)
	返回指定时间间隔中收集到的值的总和。时间间隔作为第一个参数,支持秒或收集值的数目(以#开始)。本函数支持time_shift作为第二个参数。
time
	以HHMMSS 返回当前时间
timeleft (sec|#num,,threshold,)
	Zabbix 3.0.0开始支持此功能。
	Zabbix 3.2.2支持阈值参数中的单位符号。
	预测监控项达到指定阈值所需的时间(秒)。
	threshold 阈值 
	如果要返回的值大于999999999999.9999,返回值将裁剪为999999999999.9999。
	如果无法达到阈值,则返回999999999999.9999。
	在表达式中使用错误项类型,无效的参数,则返回值为-1
	例如:
		timeleft(#10,,0) →基于最后10个值预测监控项值到达0的时间
		timeleft(1h,,100) →基于最近1h值预测监控项值到达100的时间
		timeleft(1h,1d,0) → 基于前一天最近1h值预测监控项值到达0的时间
		timeleft(1h,,200,polynomial2) → 基于最近1h值和二次函数预测监控项值到达200的时间

LEAVE A COMMENT

Captcha Code