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将值与正则表达式匹配,并用替换值。 正则表达式支持用\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.1 正则表达式

1、选择字符或文本监控项

选择了收集系统CPU信息的监控项作为实验操作对象。未做处理时原始值为字符串

 
 
 
 

2、现在把这个监控项的Preprocessing名称下拉菜单选择为正则表达式

 
 

3、根据官方说明信息,监控项收集字符串如果符合^processor正则表达式的就会被替换为test,等待一段时候后结果符合预期

 
 

4、正则表达式还可以使用\N(N=1……9)序列方式,格式化输出替换的模版,大大丰富的正则替换的类型,并可以重组替换的输出值。下面修改正则表达式使用序列方式自定义输出值

 
 

5、正则表达式为(GenuineIntel).*(working),替换值为 \1 test \2,第一个括号的正则表达式代表第一个序列,第二个括号的正则表达式代表第二个序列,替换值分别使用\1和\2代表,不过必须要注意去掉括号后,整个正则表达式必须匹配监控项值的一部分,否则得出的结果为空值。

 
 

得出的结果符合预期。

6、Proprocessing还有一个特别棒的功能,被转换了一次的数值可以在被下一层继续处理,如果熟悉使用过shell命令的管道符的话,对于这个就不难理解。如下图,增加多一层转换

 
 

结果为

 
 

7、可以在添加一层转换,使用\d+匹配其中的数字

 
 

结果为

 
 

1.2 自定义倍数

1、根据上面得出的数字,使用Custom multiplier自定义倍数转换,可获得预期值

 
 

结果为

 
 

1.3 过滤尾字符

1、从值的末尾删除指定的字符

 
 

结果为

 
 

1.4 过滤首字符

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

 
 

结果为

 
 

注:其它的转换处理根据表格说明自行验证

1.5 存储值转换

有意思是这些处理是在数据储存到数据库前的操作,而触发器的触发操作依据是数据库中储存的值,所以这一串处理储存到数据库的值是整数值类型的8,可以为这个监控项配置一个判断大于8等类型的触发器。

 
 
 
 

1.6 总结语

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

作者:寒竹的简书
链接:https://www.jianshu.com/p/21feb34bba2b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

zabbix 3.4新功能值预处理的更多相关文章

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

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

  2. ZABBIX新功能系列1-使用Webhook将告警主动推送至第三方系统

    Zabbix5以来的新版本与以前的版本除UI界面变化较大外,在很多功能上也有许多亮点,我这里计划安排1个系列来和大家交流一些新功能的使用,这是第一篇:使用Webhook将告警主动推送至第三方系统. 首 ...

  3. 从淘宝 UWP 的新功能 -- 比较页面来谈谈 UWP 的窗口多开功能

    前言 之前在 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记 这篇随笔中介绍了一下 UWP 淘宝的“比较”新功能呱呱坠地的过程.在鲜活的文字背后,其实都是程序员不眠不休的血泪史(有血有泪有史) ...

  4. MySQL 5.7 Replication 相关新功能说明

    背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...

  5. PHP5各个版本的新功能和新特性总结

    因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征 本文目录:PHP5.2 以前:auto ...

  6. unity5.0新功能-布料、动画系统

    原作者:只待苍霞 这一章讲一下布料系统, 这次的布料系统有很大的改良.Unity4中, 需要对SkinnedMeshRenderer使用SkinnedCloth, 或者对Cloth Renderer使 ...

  7. unity5.0新功能

    原作者 只待苍霞 章节1: 先来两个最关心的新功能, 第一章先讲PBS, 第二章讲光影GI.说到PBS, 首先应该想到的是Unity自带的两个新的Shader, 分别是Standard以及Standa ...

  8. SQLSERVER2014中的新功能

    SQLSERVER2014中的新功能 转载自:http://blog.csdn.net/maco_wang/article/details/22701087 博客人物:maco_wang SQLSER ...

  9. HTML5基本特性和新功能

    HTML5的基本特征 1.向前兼容性 核心理念——平滑过渡! 不支持html5的浏览器可以向前兼容,并不会影响web内容的显示! 2.跨平台运行性 从pc浏览器到手机.平板电脑,甚至是智能电视. 只要 ...

随机推荐

  1. 基于Dlib、OpenCV开发人脸识别程序的开发建议

    前言 在去年十月的时候参加了一个小比赛,做了一个人脸识别程序并很意外地获得省里面的一等奖,视频演示链接在这里,有同学想要做这方面的毕业设计or课程设计,发一篇博客来分享一下当时的开发过程. 视频演示链 ...

  2. Beta 冲刺(7/7)

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10129067.html 作业博客:https://edu.cnblogs.com/campus ...

  3. L222 词汇题

    Some psychologists argue that the traditional idea “spare the rod and spoil the child” is not ration ...

  4. node 常见的一些系统问题

    nodde正风生火起,很多介绍却停留在入门阶段,无法投入生产 许多文章在讲第三方类库,可是这些库质量差距较大,一旦遇到问题怎么办 全面了解node核心才能成为一名合格的node开发人员 1. node ...

  5. Android 获取联系人和电话号码

    获取联系人和电话号码 private void queryContactPhoneNumber() { String[] cols = {ContactsContract.PhoneLookup.DI ...

  6. Appium 并发多进程基于 Pytest框架

    前言: 之前通过重写unittest的初始化方法加入设备参数进行并发,实现了基于unittest的appium多设备并发,但是考虑到unittest的框架实在过于简陋,也不方便后期的Jenkins的持 ...

  7. Texas Instruments matrix-gui-2.0 hacking -- execute_command.sh

    #!/bin/sh #Copyright (C) Texas Instruments Incorporated - http://www.ti.com/ # # # Redistribution an ...

  8. caffe测试mnist问题-error while loading shared libraries

    问题描述 build/examples/mnist/convert_mnist_data.bin: error while loading shared libraries: libcudart.so ...

  9. google-protobuf安装详解

    前言 编译调试项目的过程中涉及到caffe的编译,提示没有安装protobuf的错误,本文详解protobuf的安装: 问题描述 解决步骤 1.查看google protobuf的github,没有直 ...

  10. HDU 4638 树状数组 想法题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4638 解题思路: 题意为询问一段区间里的数能组成多少段连续的数.先考虑从左往右一个数一个数添加,考虑当 ...