Zabbix预处理JSONPath正则不匹配运算符正确用法
Zabbix 预处理JSONPath正则不匹配配置说明
常见错误原因
- 不存在
!=~正则不匹配运算符:包括Zabbix内置实现在内的标准JSONPath没有提供该运算符,使用该写法会直接触发Unexpected token '='语法报错 - 正则反斜杠未转义:Zabbix预处理的字符串解析逻辑会优先处理转义字符,正则表达式里的单反斜杠会被直接吞掉,导致JSONPath解析器无法识别正则结构,触发
unsupported construct in jsonpath报错
正则不匹配的标准写法
Zabbix的JSONPath实现中,正则否定匹配没有专用运算符,需要通过逻辑非!包裹整个正向正则匹配表达式实现,基础语法结构为:
$.[?(!(@.目标字段 =~ '正则表达式'))]
Zabbix场景合规配置示例
针对vfs.fs.get监控项过滤fstype为空、含空白字符异常条目的需求,正确写法为:
$.[?(!(@.fstype =~ '^\\s*$'))]
注意:正则中匹配空白字符的
\s必须写为\\s做双次转义,才能被Zabbix解析器正确识别。
可直接复用的完整过滤预处理规则顺序如下:
- 匹配预设的合法文件系统类型
$.[?(@.fstype =~ '{$FSTYPE.MATCHES}')] - 排除fstype为空、全为空白字符的异常条目
$.[?(!(@.fstype =~ '^\\s*$'))] - 过滤挂载点路径为空的无效条目
$.[?(@.fsname =~ '.+')] - 排除无需监控的系统虚拟挂载点
$.[?(!(@.fsname =~ '^(/dev|/sys|/run|/proc|.+/shm$)'))]
内容的提问来源于stack exchange,提问作者Raul Chiarella
相关产品推荐
相关产品推荐

