zabbix 3.4新功能值解析——Preprocessing预处理

Zabbix 3.4版本更新了许多新功能,其中一个监控项功能Preprocessing,根据官方说明文档,在监控项收集的数据存储到数据库前,预先对数据进行处理,使用效果超过预期。这个功能存放位置在创建item后多了一个Preprocessing选项卡,截图如下

简单解析下Preprocessing菜单:

转换

描述

Custom multiplier

将值乘以指定的整数或浮点值。使用此选项将以KB,MBps等接收的值转换为B,Bps,否则Zabbix无法正确设置前缀(K,M,G等)。从Zabbix 2.2开始,也支持使用科学符号。 例如。 1e + 70。

Right trim

从值的末尾删除指定的字符。

Left trim

从值的起始处删除指定的字符。

Trim

从值的起始和结尾删除指定的字符。

Regular expression

将值与<pattern>正则表达式匹配,并用<output>替换值。 正则表达式支持用\N序列提取最多10个捕获的组。\ 参数:
 pattern - 正则表达式
 output - 输出格式化模板。一个\N(其中N = 1 … 9)转义序列被替换为第N个匹配组。

Boolean to decimal

将值从布尔格式转换为十进制。文本表示被转换为0或1.因此,“TRUE”存储为1,“FALSE”存储为0.所有值都以不区分大小写的方式进行匹配。当前被认为的布尔值值如下:
 TRUE - true, t, yes, y, on, up, running, enabled, available
 FALSE - false, f, no, n, off, down, unused, disabled, unavailable
 此外,任何非零数值都被认为是TRUE,0被认为是FALSE。

Octal to decimal

将八进制格式的值转换为十进制。

Hexadecimal to decimal

将值从十六进制格式转换为十进制。

Delta

计算当前值和上一个值之间的差值。评估为value-prev_value,其中 value - current value; prev_value - 以前收到的值每个项目只允许一个delta操作。

Delta per second

计算每秒速度的值变化(当前值和上一个值的差值)。
 计算为(value-prev_value)/(time-prev_time),其中 value - 当前值; prev_value - 当前收到的值; time - 当前时间戳,prev_time - 以前值的时间戳。
 这个设置是非常有用的,以获得每秒不断增长的速度值。 如果当前值小于上一个值,Zabbix将丢弃该差异(不存储)并等待另一个值。这有助于正常工作,例如,32位SNMP计数器的包装(溢出)。
 注意: 由于此计算可能产生浮点数,建议将'Type  of information' 设置为 Numeric (float),即使传入的原始值是整数。  这对于小数部分尤其重要。 如果浮点值很大并且可能超过'float'字段长度,在这种情况下,整个值可能会丢失,实际上建议使用Numeric(无符号),因此只会修剪小数部分。
 每个监控项只允许一个delta操作。

 

1.6        总结语

    preprocessing功能非常实用,如某些品牌的网络设备,使用snmp方式监控并收集回来的数据,由于厂商预先进行了处理,导致网络流量的值为4.5MB或者56KB等形式,人性化的表现形式,而对于3.4以前的zabbix来说,整数或浮点数后面多一两个字符,这整串数据就不能以整数值或者浮点数配置监控项的数据库收集类型,必须使用文本字符串类型,而文本和字符串类型监控项触发器不能使用数值监控类型的判断并触发流量报警。要变成数字类型,唯一的方式是使用外部检查预先编写字符串处理脚本,但增加的配置监控项的繁琐程度,且外部检查降低了zabbix的性能,3.4的preprocessing功能使得问题解决,并更加灵活的处理监控数据。

 

 

         加入我们,一起玩转zabbix。

posted on 2019-03-11 15:55  遇见阿杜  阅读(976)  评论(0编辑  收藏  举报