Zabbix触发最后N个文本值匹配正则expression式

我通过检查最后一个值是否匹配regexp来检查是否发生了错误。

({myhost.com:my.item.regexp(^ERROR$)})#0 

我需要一些容忍,通过检查不是最后的N值来匹配正则expression式,即最后2-3个值。

我怎样才能做到这一点?

根据Zabbix函数文档 ,函数regexp()接受第二个参数 – 要分析的秒数或值。 不幸的是,如果至less有一个值匹配,它将返回1,这不是你所需要的 – 你需要所有值匹配。

因此,如果您的正则expression式足够简单,请考虑使用“eq”或“like”运算符的count()函数:

 {host:item.count(#3,ERROR,eq)} = 3 {host:item.count(#3,ERROR,like)} = 3 

在count()函数中还有一个可以使用正则expression式的特性请求,它在ZBXNEXT-1250被跟踪。

会喜欢的东西

 ({myhost.com:my.item.regexp(^ERROR$).max(#3)}=0) 

为你工作? 如果没有,只需使用Zabbix web GUI中的内置触发器expression式构造器,即使不容易,也可以使这种东西更容易。