zabbix 3.4新功能值预处理
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、根据上面得出的数字,使用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新功能值预处理的更多相关文章
- zabbix 3.4新功能值解析——Preprocessing预处理
Zabbix 3.4版本更新了许多新功能,其中一个监控项功能Preprocessing,根据官方说明文档,在监控项收集的数据存储到数据库前,预先对数据进行处理,使用效果超过预期.这个功能存放位置在创建 ...
- ZABBIX新功能系列1-使用Webhook将告警主动推送至第三方系统
Zabbix5以来的新版本与以前的版本除UI界面变化较大外,在很多功能上也有许多亮点,我这里计划安排1个系列来和大家交流一些新功能的使用,这是第一篇:使用Webhook将告警主动推送至第三方系统. 首 ...
- 从淘宝 UWP 的新功能 -- 比较页面来谈谈 UWP 的窗口多开功能
前言 之前在 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记 这篇随笔中介绍了一下 UWP 淘宝的“比较”新功能呱呱坠地的过程.在鲜活的文字背后,其实都是程序员不眠不休的血泪史(有血有泪有史) ...
- MySQL 5.7 Replication 相关新功能说明
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...
- PHP5各个版本的新功能和新特性总结
因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征 本文目录:PHP5.2 以前:auto ...
- unity5.0新功能-布料、动画系统
原作者:只待苍霞 这一章讲一下布料系统, 这次的布料系统有很大的改良.Unity4中, 需要对SkinnedMeshRenderer使用SkinnedCloth, 或者对Cloth Renderer使 ...
- unity5.0新功能
原作者 只待苍霞 章节1: 先来两个最关心的新功能, 第一章先讲PBS, 第二章讲光影GI.说到PBS, 首先应该想到的是Unity自带的两个新的Shader, 分别是Standard以及Standa ...
- SQLSERVER2014中的新功能
SQLSERVER2014中的新功能 转载自:http://blog.csdn.net/maco_wang/article/details/22701087 博客人物:maco_wang SQLSER ...
- HTML5基本特性和新功能
HTML5的基本特征 1.向前兼容性 核心理念——平滑过渡! 不支持html5的浏览器可以向前兼容,并不会影响web内容的显示! 2.跨平台运行性 从pc浏览器到手机.平板电脑,甚至是智能电视. 只要 ...
随机推荐
- poj2892
题解: 答案=后缀-前缀-1 如果被轰了,那么就时0 在一开始加入0,n+1,保证有前缀后缀 代码: #include<cstdio> #include<cmath> #inc ...
- >CH07-cubemap
使用rendermonkey进行一个天空球的贴图,内容来自<<shaders for gpa>> 不知道是不是用的182版RM的原因,照着书上做一个天空球的CUBEMAP,老不 ...
- 玩转X-CTR100 l STM32 l STM32F4 l 蓝牙串口通信
我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 蓝牙串口通信模块,X-CTR100控制 ...
- tomcat用户配置,内存配置,pid配置
一:tomcat用户配置 1.打开 webapps\manager\WEB-INF\web.xml 可以看到tomcat所有的角色名,后面我们就是需要配置这些角色 2.给用户添加角色 打开 conf/ ...
- Swift中格式化日期
Swift语言中格式化日期跟其它编程语言很相似: var dformatter = NSDateFormatter() dformatter.dateFormat = "yyyy年MM月dd ...
- Android实现EditText的富文本编辑
前言 本文是我之前写的这篇文章<Android图文混排-实现EditText图文混合插入上传>的升级版,除了在EditText实现了图片上传之外,还包含了视频上传.云盘文件上传.录音上传以 ...
- string用scanf读入(节省时间)
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; in ...
- SVM核技巧之终极分析
参考文献: http://www.blogjava.net/zhenandaci/archive/2009/03/01/257237.html http://www.cnblogs.com/jerry ...
- 如何快速切换目录cd-linux
前言 cd命令是linux系统中的基本命令行,表示改变工作目录.本文主要介绍几个常用的cd命令. 系统环境 OS:ubuntu16.04. 操作过程 cd www 表示切换到www目录: cd .. ...
- 使用Nginx实现灰度发
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到 ...