所有触发器表达式支持的函数都在下表中。
函数 | |||
---|---|---|---|
描述信息 **参 | ** **备注* | ||
abschange | |||
后一个值与前一个值变动的绝对值。 | 支持的值类型: float, | nt, str, text, log 例如: (前一个值;后一个值=绝对值) 1;5=4 3;1=2 0;-2.5=2.5 值类型为str型的返回值: 0 - 两个str相等 1 - 两个str不相等 |
|
avg (sec|#num,<time_shift>) | |||
指定评估期内的一个item的平均值。 sec or ** | #num** - 评估期以多少秒或最新值个数(个数跟在#号后)表示 支持的值类型: float, int time_shift (可选) - 评估时间点相对于当前时间的偏移量 |
<Examples: => avg(#5) → 最新5个值的平均值 => avg(1h) → 最近一小时的平均值 => avg(1h,1d) → 一天前的一小时内的平均值 从Zabbix 1.8.2开始支持 time_shift 参数。 主要用于将当前平均值与偏移若干秒后的平均值进行比较。 |
|
band (sec|#num,mask,<time_shift>) | |||
将item值与mask进行按位与操作。 sec (可 | 略) or #num - 第N个最近的价值。 支持的值类型: int mask (不可省略) - 64-bit无符号整数 (0 - 18446744073709551615) time_shift (可选) - 参见avg() 函数 请注意 #|<um 在这里的工作方式与其他函数不同(具体用法参见last()函数)。\\尽管以二进制方式进行比较,但是所有的参数和返回值都是十进制。 示例: => band(,12)=8 or band(,12)=4 → 第三位和第四位被设置,但不是同时设置。 => band(,20)=16 →第三位没有被设置但是第五位被设置了。 从Zabbix 2.2.0开始支持该函数。 |
||
change | |||
最近获取值与之前获取值的差。 | 支持值类型: float, | int, str, text, log 例如: (前一个值;后一个值=差) 1;5=+4 3;1=-2 0;-2.5=-2.5 可与abschange函数对照。 值类型为str型的返回值: 0 - 两个str相等 1 - 两个str不相等 |
|
count (sec|#num,<pattern>,<operator>,<time_shift>) | |||
指定评估期内值出现的次数。 sec or * | #num** - 评估期以多少秒或最新值个数(个数跟在#号后)表示。 支持值类型: float, integer, string, text,pattern (可选) - 指定模式 浮点类型的 operator (可选) 支持的操作符: eq* - 等于 **ne* - 不等于 gt - 大于 示ge - 大于等于 =&glt - 小于 =le - 小于等于 =&glike - 只要包含(区分大小写)就被匹配 => count(band - 按位与 =®exp - 按 pattern 参数进行正则表达式匹配(大小写敏感) => count(10m,12iregexp - 按pattern 参数进行正则表达式匹配(不区分大小) => count(10m,6/注意: eq (默认), ne, gt, ge, lt, le, band, regexp, iregexp仅仅支持整型数据。 #num 参数从eq (默认), ne, gt, ge, lt, le, regexp, iregexp仅仅支持浮点型数据。 time_shift*like* (默认), *eq*, *ne*, *regexp*, *iregexp*支持string, text和log类型数据。\ *band*操作从 pattern可以用'/'分隔的两个数字表示: **number\_to\_compare\_with/mask**。 count() 函数计算值和掩码的按位与,再和 number\_to\_compare\_with 参数进行比较,如果与*number\_to\_compare\_with*参数结果相等, 则该值被计数。 pattern可以是一个普通的或以 '@'开头的[全局](/manual/regular_expressions#global_regular_expressions)正则表达式。使用全局正则表达式时,是否大小写敏感取决于全局正则表达式的配置。为了进行正则表达式匹配,浮点值将始终用'.'后的4位数字表示。另请注意,对于十进制(存储在数据库中)和二进制(由Zabbix server使用)表示的数字差异,可能会对4位数字有影响。 time_shift参数。| |**diff**|<|<|<| |<|比较最近获取值与之前获取值是否相同。|支持值类型: float, int|str, text, log t支持的 modes :value - 值 (默认) max - 最大值 min - 最小值 delta - 最大-最小 avg - 平均值 注意: value 预测item值在 now + time 时间点max, min, delta 和 avg 函数在 now 和 now + time 时间段计算item值 |
<999999999999.9999 或者小于 -999999999999.9999, 返回值相应被设置为999999999999.9999 或 -999999999999.9999 。 只有在表达式被错误使用时才不可用(错误的项目类型,无效的参数),出现错误时返回-1。 ples: ; forecast(#10,,1h) → 根据最新的十个值预测一小时后的值 ; forecast(1h,,30m) → 根据过去一小时的值预测三十分钟后的值 ; forecast(1h,1d,12h) → 根据昨天这个时间点前一个小时的值预测十二个小时后的值 t; forecast(1h,,10m,exponential) → 根据过去一小时的值并按照指数函数方式预测十分钟后的值 => forecast(1h,,2h,polynomial3,max) → 根据过去一小时的值并按照三次多项式方式预测两小时后的最大值 gt; forecast(#2,,-20m) → 根据最新的两个值预测二十分钟前的值 (比使用last()或prev()函数更加精确, 特别是item很少更新的时候, 比如说, 一小时一次) 从Zabbix 3.0.0开始支持该函数。 me 允许负值从Zabbix 3.0.6和3.2.2开始支持。 #num参数和在其它函数中的作用不一样。 #num参数。 time_shift参数。| |**logeventid** (pattern)|<|<|<| |<|检查最近日志记录的EventID是否匹配正则表达式。 **pattern** - 正则表达|需要匹配的模式, 支持[POSIX extended](http://en.wikipedia.org/wiki/Regular_expression#POSIX_Extended_Regular_Expressions) 类型。 支持值类型: log time_shift参数。| |**min** (sec\|\#num,<time\_shift>)|<|<|<| |<|指定评估期内一个item的最小值。 **sec** or *|\#num** - 评估期以多少秒或最新值个数(个数跟在\#号后)表示\ 支持值类型: float, int time_shift参数。| |**nodata** (sec)|<|<|<| |<|检查评估期内是否接收到数据。 **sec** - 评估期|单位为秒。\ 支持值类型: *any* #num参数和它在其它函数中的作用不一样。 time_shift参数。| |**time**|<|<|<| |<|当前时间,以HHMMSS格式表示。|支持值类型: *an|* threshold` 参数。通过 predictive trigger functions查看扩展信息。 |
重要事项:
1) 部分函数不能用于非数值类型数据。
2) 字符型参数都应该使用双引号。否则,可能会被错误解析。
3) 所有trigger函数中的sec 和 time_shift参数都必须是带有可选时间单位后缀的整数。 时间单位后缀与item的数据类型完全无关。
1 从第一个接收值开始计算函数 (除非使用 time_shift
参数).
从Zabbix 3.2开始, nodata(), date(), dayofmonth(), dayofweek(), now() 和 time() 函数都支持用于不被支持的监控项。 但其他函数都要求用于可支持的监控项。