Zabbix4.2新功能实践2
数据节流Throttling
Zabbix4.2增加了一个Item预处理功能:Throttling(节流)功能。通过此功能可以实现以下几个效果: 1.减少Item重复数据的存储。 2.对高频率采集数据进行压缩存储。 总结起来就是可以减少Item采集的重复数据存储,具体使用方法及用途通过以下几个实验说明
1 配置Throttling
配置Item的Throttling功能,可在item的预处理配置
分别有二个选项:
✨ Discard unchanged 丢弃不变化的数据 ✨ Discard unchanged with heartbeat 带心跳检查丢弃不变化的数据
Discard unchanged 为直接丢弃重复的数据,如item采集的前一个数据和目前数据重复,则只保存前一个数据,直接丢弃后续采集的数据 Discard unchanged with heartbeat 为配置一个心跳时间,此时间内至少会存储一个不变的采集数据
2 配置Discard unchanged
以我之前写的agent为例,目前有一个Item为采集服务器cpu型号的item如下
配置Throttling如下
现在改变item的采集数据
数据变化后,Throttling功能没有生效!!!Item依然保存数据.如采集数据不发生变化时,只存储了第一个数据,后续数据已不再存储。查看Agent日志如下
显示Zabbix Server还在采集数据,说明数据已采集到zabbix server只是丢弃了,没有进行存储。
3 配置Discard
unchanged with heartbeat
配置Discard unchanged with heartbeat
如下配置之后,Item的采集周期为1分钟,心跳配置为5分钟,如数据不发生变化,每5分钟会有一个数据被存储,由于数据重复,可视为对重复数据进行了压缩存储。
如数据发生变化时,可以看到配置的策略已不生效,数据按照Item采集周期被采集和存储。
4 结论
1.配置Discard unchanged之后,如采集数据发生变化,Throttling配置不生效,正常采集存储数据。数据不变化时,采集正常执行,但只存储一个数据,但不影响告警等功能。 2.配置Discard unchanged with heartbeat之后,在心跳周期内至少存储一个数据,如数据发生变化,则配置的心跳时间不生效,以指标采集周期为准,采集存储数据。
使用场景
1.高频率采集情况下,如秒级别采集,配置合适的心跳,即能保证不错过变化的采集数据和告警,又能降低数据存储压力。 2.对一般采集数据不发生变化的采集指标,配置之后可起到数据“压缩”功能,降低数据存储压力。
跟社区专家老张一起学习Zabbix