概述
在前面的《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,如下图
如何引用正则表达式
例如low-level filter需要引用表达式,在表达式名称前加@即可,例如@你的正则表达式名称、@File systems for discovery
正则表达式名称规范
名称可以包含逗号与空格,例如@network, ttlsa,不推荐你使用逗号,让人觉得很奇怪,并且使用逗号的时候,你需要用双引号将整个名称括起来,例如“@network, ttlsa”。