概述
预处理允许为接收到的item值定义转换规则。 在保存到数据库之前,可以进行一次或多次转换。
转换按照定义的顺序执行。 预处理由 Zabbix server或proxy完成(如果item由proxy监控)。
请注意,转换为所需值类型(在item配置中定义)是在预处理管道结束时执行的;
预处理各个参数讲解
Text
- Regular expression
将值与正则表达式pattern进行匹配,并将值输出到output,正则表达式支持使用 \N 序列提取最多 10 个捕获的组
如果勾选了“Custom on fail”复选框,在预处理失败的情况下item不会变成不支持,并且可以自定义错误处理选项:
discard the value:丢弃值
set value to:设置指定的值
set error to:设置指定的错误消息
正则表达式支持全局表达式(通过@+名称引用),也可以手动填写
- 全局正则表达式讲解
Character string included - 匹配子字符串
Any character string included - 匹配分隔列表中的任何子字符串。 分隔列表包括逗号 (,)、点 (.) 或正斜杠 (/)。
Character string not included - 匹配除子字符串之外的任何字符串
Result is TRUE - 匹配正则表达式
Result is FALSE - 不匹配正则表达式
Case sensitive - 一个复选框,用于指定正则表达式是否对字母的大小写敏感。
- Replace
找到搜索字符串并将其替换为另一个(或没有)。 将替换所有出现的搜索字符串。
参数:
search string - 要查找和替换的字符串,区分大小写(必需)
replacement - 用于替换搜索字符串的字符串。 替换字符串也可以为空,有效地允许在找到时删除搜索字符串。
可以使用转义序列来搜索或替换换行符、回车、制表符和空格“\n \r \t \s”; 反斜杠可以转义为“\\”,转义序列可以转义为“\\n”。 在低级发现期间自动完成换行符、回车、制表符的转义。
- Trim
从值的开头和结尾删除指定的字符。
- Right trim
从值的末尾删除指定的字符。
- Left trim
从值的开头删除指定的字符。
Structured data
- XML XPath
使用 XPath 功能从 XML 数据中提取值或片段。
要使此选项起作用,Zabbix 服务器必须使用 libxml 支持进行编译。
- JSON Path
使用 JSONPath 功能从 JSON 数据中提取值或片段。
- CSV to JSON
将 CSV 文件数据转换为 JSON 格式。参考链接
Arithmetic
- Custom multiplier
将该值乘以指定的整数或浮点值。
请注意,如果信息的项目类型是数字(无符号),则在应用自定义乘数之前,将修剪带有小数部分的传入值(即“0.9”将变为“0”)。
Change
- Simple change
计算当前值与先前值之间的差值
- Change per second
计算每秒的值变化(当前值和先前值之间的差异)速度。
Numeral systems
- Boolean to decimal
布尔类型转换为十进制
文本表示被转换为 0 或 1。因此,“TRUE”存储为 1,“FALSE”存储为 0。所有值都以不区分大小写的方式匹配。 当前公认的值是:
TRUE - true, t, yes, y, on, up, running, enabled, available, ok, master
FALSE - false, f, no, n, off, down, unused, disabled, unavailable, err, slave
- Octal to decimal
将值从八进制格式转换为十进制。
- Hexadecimal to decimal
将值从十六进制格式转换为十进制。
Custom scripts
- JavaScript
Validation
- In range
通过指定最小/最大值(包括)来定义一个值应该在的范围。
- Matches regular expression
指定一个值必须匹配的正则表达式。
- Does not match regular expression
指定一个值不能匹配的正则表达式
- Check for error in JSON
检查位于 JSONpath 的应用程序级错误消息。
- Check for error using a regular expression
使用正则表达式检查应用程序级错误消息。
- Check for not supported value
Throttling
- Discard unchanged
如果值未更改,则丢弃它。
如果一个值被丢弃,它不会保存在数据库中,并且 Zabbix 服务器不知道该值已被接收。 不会评估触发器表达式,因此不会创建/解决相关触发器的问题。 函数仅基于实际保存在数据库中的数据起作用。 由于趋势是基于数据库中的数据构建的,如果一个小时内没有保存值,那么该小时也没有趋势数据。
- Discard unchanged with heartbeat
如果值在定义的时间段(以秒为单位)内未更改,则丢弃该值。
Prometheus
- Prometheus pattern
- Prometheus to JSON
不积跬步,无以至千里;不积小流,无以成江海。