在使用zabbix的时候可能会有遇到这么一个场景:通过配置自动发现获取到的值里面往往存在着部分自己所不需要的取值,可能你会觉得直接不管它就好,小场景下这样的做法确实没什么问题,但是如果在大场景下呢?可能一台机器就能自动发现出成百上千的无用监控项,同时这种设备还不止一台的话,而是多台的情况下,大量的无用监控项无疑是对资源极大的浪费。其实我们可用通过自动发现的过滤器配合着本地的正则表达式去进行一个过滤来解决这一问题。
一、 现在的这台机器上的文件系统应用集里面的监控项被配置自动发现规则发现出来,图一。
图1
而我现在想把/boot有关这块的内容把它去掉。
二、 我先去到相应模板的自动发现规则那里找到对应的键值。
图2
然后到命令行界面进行相应的查询,可以看到返回jason格式数据中,/boot对应的标签宏是{#FSNAME}。
图3
三、 在过滤器新增正则表达式。
图4
表示:把发现到的文件系统中的/boot过滤掉。
四、 回到该主机上查看对应的监控项信息。
图5
可以看到该相应的监控项其实已经不在使用,且在我们自动发现规则设置的的资源保存周期过后将会被自动删除。
五、 另外在上面图三中还可以看到针对该自动发现的类型做了一个过滤,它这种写法其实是引用了已经配置好的正则表达式。而该表达式就在
图6
写法一样是 ^(……)$
图7
设置该部分内容“结果为真”,结合图4对应部分的“匹配”设置可以理解为:文件类型符合以下类型的内容才选用。
另外需要注意的是对于该部分的内容(引用正则的做法),如果导出模板到另外一个环境中可能会因为新环境不存在该部分正则表达式,过滤器无法进行引用,而导致部分监控项无法使用或者模板出错等问题的出现。