一、 预处理功能描述
-
Discard unchanged :丢弃没有改变的数据,如果丢弃该值,则该值不会保存在数据库中,并且Zabbix服务器不知道已接收到该值。
-
Discard unchanged with heartbeat:带心跳检查丢弃不变化的数据,如果值在定义的时间段(以秒为单位)内未更改,则将其丢弃。如果丢弃该值,则该值不会保存在数据库中,并且Zabbix服务器不知道已接收到该值。不会评估任何触发器表达式,因此不会创建/解决相关触发器的问题。
二、 功能实现效果
-
减少 Item 重复数据的存储。
-
对高频率采集数据进行压缩存储。
三、 功能测试
- Discard unchanged功能测试
1.1 以zabbix_agent运行的主机名为例,设置采集时间为60s采集一次,没有设置预处理之前的效果效果如下:
1.2 添加预处理----discard unchanged
1.3 修改zabbix_agent hostname参数的主机名和重启主机名
1.4 等待几分钟将配置文件的Hostname参数重新修改回来
1.5 查看最新数据
1.6 测试结论
配置 Discard unchanged 之后,如采集数据发生变化,Throttling 配置不生效,正常采集存储数据。数据不变化时,采集正常执行,但只存储一个数据,但不影响告警等功能。
- Discard unchanged with heartbeat功能测试
2.1 以用户登录的数量为例,设置采集时间为30s,心跳的时间为180s,
2.1 查看数据最新数据,如果数据不发生改变,每3分钟会存储一个数据,如果数据发改变这一分钟存储一个数据;
2.2 测试结论 配置 Discard unchanged with heartbeat 之后,在心跳周期内至少存储一个数据,如数据发生变化,则配置的心跳时间不生效,以指标采集周期为准,采集存储数据