最近在做监控设备时,老是会有端口down掉的告警,一查数据发现,端口本来一直就是down的,关了之后,过段时间又继续发告警;还有领导反馈监控项那么多为啥那么多没有数据的,然后又blablabla解释了一大堆。所以,就想到了使用过滤器,添加正则表达式给这些没啥实际意义的监控项去掉,记录下来供大家参考。具体操作请以实际情况为准。
过滤器,顾名思义是指过滤掉不需要的监控项,比如端口没有数据的、状态一直是down的、虚拟端口等;在自动发现规则使用过滤器就对我们的监控需求很有帮助。

下面以网络设备的端口的状态、虚拟端口为例,浅谈一下如何使用过滤器帮助我们达到监控效果,也可以在其他有自动发现规则的模板使用,过滤前可以先观察实际情况的数据,然后再使用过滤器。

1、过滤掉虚拟端口(Virtual Interface)
如下图所示的,Vlanif(VirtualLocalAreaNetworkIterface)这些端口,一般是设备的逻辑端口,在物理上并不存在的,类似的还有virtual interface、Vinterface等名称的,都属于虚拟端口。监控这些虚拟的端口没有实际意义,可以适当的过滤。
Zabbix自动发现规则如何使用过滤器_第1张图片
Zabbix自动发现规则如何使用过滤器_第2张图片

过滤方法:在自动发现规则添加正则表达式 ^Vlanif,然后点 现在检查 等待重新自动发现即可过滤此类监控项。
Zabbix自动发现规则如何使用过滤器_第3张图片

2、不发现状态关闭或者未知的端口

通常端口的状态有三个值映射,也就是 0 Unknow、1On 、2 Down,当然每种型号的设备可能会有所区别,需要根据实际的设备OID查询。我们一般会把端口的状态是Down的情况创建触发器,但假如端口一直是 Off的,然后一直发告警信息,这就不符合实际监控需求,应该是有up转down才送告警。因此需要在自动发现时,过滤状态为Down的端口。
打开端口状态的监控项,复制oid到自动发现规则
Zabbix自动发现规则如何使用过滤器_第4张图片
在过滤器添加正则表达式,过滤掉状态为2(Down)的端口
Zabbix自动发现规则如何使用过滤器_第5张图片
然后加到自动发现规则里面,更新后,点击现在检查,等规则重新发现数据后,就会过滤掉状态为Down的端口了。
Zabbix自动发现规则如何使用过滤器_第6张图片

当然,这个是一个一个模板的添加修改的,在模板较多时,不方便,可以在 配置 – 一般 – 正则表达式,创建全局的表达式,然后在自动发现规则引用即可以。
示例:
Zabbix自动发现规则如何使用过滤器_第7张图片
引用方式:点击添加表达式,输入宏,使用 @Network interfaces for discovery 即可。
Zabbix自动发现规则如何使用过滤器_第8张图片
关于正则表达式的使用,可以参考一些教程学习网站,如菜鸟教程、W3Cschool等。