概述
在前面的《zabbix low-level discovery》一文中有filter一项,用于从结果中筛选出你想要的结果,比如我们在filter中填入^ext|^reiserfs则表示{#FSTYPE}要符合ext与reiserfs才能加入到item中。这个需求比较简单,假如我们过滤方法更严格怎么办?或者说多个low-level的filter都有用到同一个正则表达式,并且希望修改一处,所有的filter都跟着修改,请使用zabbix正则表达式。
配置
点击Administration >>General>>右侧下拉表选择“ Regular expressions”>>New regular expression.
所有匹配完全匹配btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|ntfs|fat32|zfs文件类型返回true,正则表达式为^(btrfs|ext2|ext3|ext4|jfs|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|ntfs|fat32|zfs)$
说明:如果符合如上表达式,那么返回TRUE,否则返回FLASE,可以Add多个表达式,所有的表达式之间是逻辑与的关系,必须所有的表达式都返回TRUE,最终的结果才是TRUE。
正则表达式参数说明
Expression:正则表达式名称
Expression type:正则表达式类型
1. Character string included - 字符串包含,例如表达是处写abc,你返回的内容是abcd,那么就算匹配了,将会返回TRUE
2. Any character string included - 任意字符串包含在内(以逗号',',点号'.',斜杠'/'分隔),这边使用上有点问题
3. Result is TRUE - 符合正则表达式返回TRUE、否则返回FALSE
4. Result is FALSE - 符合正则表达式返回FALSE、否则返回TRUE
Case sensitive:是否区分大小写
点击Test标签测试正则表达式是否符合预期,例如输入ext2点击test,可以发现最后结果是TRUE,如下图
输入不符合预期的值d:,我们可以发现最后结果是FLASE,如下图
常用示例
1. 排除lo网卡与Software Loopback interface开头的内容
不符合表达式的eth1:1返回TRUE
符合表达式的 Software Loopback Interface 123返回FLASE
如何引用正则表达式
例如low-level filter需要引用表达式,在表达式名称前加@即可,例如@你的正则表达式名称、@File systems for discovery
正则表达式名称规范
名称可以包含逗号与空格,例如@network, ttlsa,个人不推荐你使用逗号,让人觉得很奇怪,并且使用逗号的时候,你需要用双引号将整个名称括起来,例如“@network, ttlsa”。
本文出自http://www.ttlsa.com/zabbix/zabbix-regular-expressions/
转载于:https://blog.51cto.com/lookingdream/1907190