一、 预处理功能描述

  1. Discard unchanged :丢弃没有改变的数据,如果丢弃该值,则该值不会保存在数据库中,并且Zabbix服务器不知道已接收到该值。

  2. Discard unchanged with heartbeat:带心跳检查丢弃不变化的数据,如果值在定义的时间段(以秒为单位)内未更改,则将其丢弃。如果丢弃该值,则该值不会保存在数据库中,并且Zabbix服务器不知道已接收到该值。不会评估任何触发器表达式,因此不会创建/解决相关触发器的问题。

二、 功能实现效果

  1. 减少 Item 重复数据的存储。

  2. 对高频率采集数据进行压缩存储。

三、 功能测试

  1. 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 配置不生效,正常采集存储数据。数据不变化时,采集正常执行,但只存储一个数据,但不影响告警等功能。

  1. Discard unchanged with heartbeat功能测试

2.1 以用户登录的数量为例,设置采集时间为30s,心跳的时间为180s,

2.1 查看数据最新数据,如果数据不发生改变,每3分钟会存储一个数据,如果数据发改变这一分钟存储一个数据;

2.2 测试结论 配置 Discard unchanged with heartbeat 之后,在心跳周期内至少存储一个数据,如数据发生变化,则配置的心跳时间不生效,以指标采集周期为准,采集存储数据