以下位置支持此处列出的所有函数:
此处列出这些函数时未包含附加信息。点击某个函数可查看其详细信息。
函数 | 描述 |
---|---|
change | 前一个值与最新值之间的差值大小。 |
changecount | 在定义的评估周期内相邻值之间变化的次数。 |
count | 在定义的评估周期内的值数量。 |
countunique | 在定义的评估周期内的唯一值数量。 |
find | 在定义的评估周期内查找值匹配项。 |
first | 定义评估周期内的第一个(最旧的)值。 |
fuzzytime | 检查被动 agent 时间与 Zabbix server/proxy 时间之间的差异。 |
last | 最近的值。 |
logeventid | 检查最后一条日志条目的事件ID是否与正则表达式匹配。 |
logseverity | 最后一条日志条目的日志严重性。 |
logsource | 检查最后一条日志条目的日志来源是否与正则表达式匹配。 |
monodec | 检查值是否持续减少。 |
monoinc | 检查值是否持续增加。 |
nodata | 检查是否未接收到数据。 |
percentile | 一个周期的P百分位数,其中P(百分比)由第三个参数指定。 |
rate | 在定义的时间周期内单调递增计数器每秒的平均增长速率。 |
/host/key
是函数中常见的必选第一个参数 引用主机 监控项历史记录(sec|#num)<:time shift>
是该函数常用的第二个参数 引用主机的监控项历史记录的函数,其中:
关于函数参数的一些通用说明:
<
>
表示/host/key
和 (sec|#num)<:time shift>
参数永远不要加引号前一个值和最新值之间的差值。
支持的值类型:float、integer、string、文本、日志。
对于字符串返回:0 - 值相等;1 - 值不同。
参数:请参见 通用参数。
备注:
+4
-2
-2.5
示例:
在定义的评估周期内相邻值之间变化的次数。
支持的值类型:float, integer, string, 文本, 日志。
参数:
对于非数值类型的值,mode 参数将被忽略。
示例:
changecount(/主机/key,1w) # 过去一周内的数值变化次数(状态变更次数统计)
changecount(/主机/key,#10,"inc") # 最近10个值中相对前值增加的次数(局部单调性检测:value[n] > value[n-1])
changecount(/主机/key,24h,"dec") # 过去24小时内相对前值减少的次数(下降趋势统计:value[n] < value[n-1])
定义的评估周期内的值的数量。 支持的值类型:float、integer、string、文本、日志。
参数:
operators
:pattern
中给出的正则表达式pattern
中给出的正则表达式注释:
pattern
参数可以指定为两个数字,用“/”分隔:要比较的数字/掩码。count() 会从值和 掩码 计算“按位与”,然后将结果与 要比较的数字 进行比较。如果“按位与”的结果等于 要比较的数字,则该值会计数。pattern
参数可以是普通正则表达式或全局正则表达式(以 '@' 开头)。对于全局正则表达式,其大小写敏感性继承自全局正则表达式设置。在正则表达式匹配时,float 值始终以 4 小数点后两位的格式表示。还需注意,对于大数值,其十进制(存储在数据库中)与二进制(由 Zabbix server 使用)表示之间的差异可能会影响小数点后第四位。示例:
`count(/主机/key,10m)` #当前时间往前 10 分钟的值
count(/主机/key,10m,"like","error") #the 过去10分钟内包含'error'的数值数量(字符串匹配计数)
count(/主机/key,10m,,12) #当前的 过去10分钟内等于'12'的数值数量(精确匹配:value == 12)
count(/主机/key,10m,"gt",12) #这个 过去10分钟内大于'12'的数值数量(数值过滤计数)
count(/主机/key,#10,"gt",12) #the 最近10个值中大于'12'的数值数量(滑动窗口统计)
count(/主机/key,10m:now-1d,"gt",12) #the 24小时前至10分钟前与24小时前之间大于'12'的数值数量(跨周期数据对比)
count(/主机/key,10m,"bitand","6/7") # 最近过去10分钟内的数值数量(总数据点数,含重复值)中3最低有效位为'110'(二进制)的情况
count(/主机/key,10m:now-1d) #the 24小时前至10分钟前与24小时前之间的数值数量(历史数据量对比)
在定义的评估周期内唯一值的数量。
支持的值类型:float, integer, string, 文本, 日志。
参数:
operators
:pattern
中给出pattern
中给出注释:
pattern
参数可以指定为两个数字,用 '/' 分隔:number_to_compare_with/mask。countunique() 会计算值与 mask 的“按位与”,并将结果与 number_to_compare_with 进行比较。如果“按位与”的结果等于 number_to_compare_with,则该值将被计数。pattern
参数可以是普通正则表达式或全局正则表达式(以 '@' 开头)。对于全局正则表达式,区分大小写由全局正则表达式设置继承。为了进行正则匹配,float 值将始终以4个小数位表示。请注意,对于大数,小数(存储在数据库中)和二进制(由 Zabbix server 使用)表示之间的差异可能影响第4个小数位。示例:
countunique(/主机/key,10m) # 过去10分钟内的唯一值数量(统计时间窗口:now-10m → now)
countunique(/主机/key,10m,"like","error") # 过去10分钟内包含'error'的唯一值数量(附加条件:值包含"error"字符串)
countunique(/主机/key,10m,,12) # 等于 '12' 的 过去10分钟内的唯一值数量(统计时间窗口:now-10m → now)
countunique(/主机/key,10m,"gt",12) # 过去10分钟内大于'12'的唯一值数量(数值比较:value > 12)
countunique(/主机/key,#10,"gt",12) # 最近10个值中大于'12'的唯一值数量(样本范围:最后10个数据点)
countunique(/主机/key,10m:now-1d,"gt",12) # 24小时前至10分钟前与24小时前之间大于'12'的唯一值数量(时间窗口:[T-24h, T-10m] ∩ [T-48h, T-24h])
countunique(/主机/key,10m,"bitand","6/7") # 最低位 3 位中包含 '110'(二进制)的 过去10分钟内的唯一值数量(统计时间窗口:now-10m → now)
countunique(/主机/key,10m:now-1d) # 24小时前至10分钟前与24小时前之间的唯一值数量(双重时间范围对比)
在定义的评估周期内查找值匹配。
支持的值类型:float、integer、string、文本、日志。
返回值:1 - 找到;0 - 否则。
参数:
operators
:pattern
中指定的 string,则匹配(区分大小写)pattern
中指定的正则表达式(区分大小写)pattern
中指定的正则表达式(不区分大小写)operator
是 regexp 或 iregexp,则为 Perl Compatible Regular Expression(PCRE)正则表达式。备注:
pattern
参数可以是普通正则表达式或 全局正则表达式(以 '@' 开头)正则表达式。对于全局正则表达式,其大小写敏感性继承自全局正则表达式设置。示例:
在定义的评估周期内第一个(最早的)值。
支持的值类型:float、integer、string、文本、日志。
参数:
另见 last()。
示例:
检查被动的 agent 时间与 Zabbix server/proxy 时间之间的差异。
支持的值类型:float、integer。
返回值:1 - 如果被动的 监控项 值(作为时间戳)与 Zabbix server/proxy 时间戳(值收集时钟)之间的差异小于或等于 sec 秒;否则返回 0。
参数:
备注:
vfs.file.time[/path/file,modify]
键一起使用,以检查 file 是否长时间未 get 更新;fuzzytime(/Host/system.localtime,60s)=0 or last(/Host/trap)<>0
中。示例:
最新值。
支持的值类型:float、integer、string、文本、日志。
参数:
备注:
last(/host/key)
总是等于 last(/host/key,#1)
;last(/host/key,#3)
表示第三个最新的值(不是最近的三个值);示例:
检查最后一条日志条目的事件ID是否匹配正则表达式。
支持的值类型:日志。
返回:0 - 不匹配;1 - 匹配。
参数:
最后一条日志条目的日志严重性。
支持的值类型:日志。
返回值:0 - 默认严重性;N - 严重性(integer,适用于Windows事件日志:1 - 信息,2 - 警告,4 - 错误,7 - 失败审核,8 - 成功审核,9 - 严重,10 - 详细)。
参数:
Zabbix从Windows事件日志的信息字段获取日志严重性。
检查最后一条日志条目的日志来源是否匹配正则表达式。
支持的值类型:日志。
返回值:0 - 不匹配;1 - 匹配。
参数:
通常用于 Windows 事件日志。
示例:
检查值是否出现了单调递减。
支持的值类型:integer。
返回值:1 - 如果时间段内的所有元素持续递减;0 - 否则。
参数:
示例:
monodec(/Host1/system.swap.size[all,free],60s) + monodec(/Host2/system.swap.size[all,free],60s) + monodec(/Host3/system.swap.size[all,free],60s) # 计算在多少个 主机 中发生了空闲交换空间大小的减少
检查值是否单调递增。
支持的值类型:integer。
返回值:1 - 如果时间段内的所有元素持续增加;0 - 否则。
参数:
示例:
检查未收到数据。
支持的值类型:integer、float、字符、文本、日志。
返回值:1 - 如果在定义的时间段内未收到数据;0 - 否则。
参数:
nodata(/host/key,0)
。注释:
nodata(/host/key,5m,"strict")
;在这种情况下,只要无数据的评估周期(五分钟)结束,函数就会触发。某一时间段的 P 百分位数,其中 P(百分比)由第三个参数指定。
支持的值类型:float、integer。
参数:
在定义的时间段内,单调递增计数器增加的每秒平均速率。
支持的值类型:float, integer。
参数:
功能上对应于 PromQL 的 'rate'。
示例: