历史数据和趋势数据是Zabbix中存储采集数据的两种方式。
历史数据保存每一次采集到的数值,而趋势数据则保存每小时的平均信息,因此对资源的消耗较低。
您可以设置历史数据保留的天数:
更早的数据将由清理任务删除。
通常强烈建议将历史数据保留天数设置为尽可能小的数值,以避免数据库因存储大量历史值而过载。
与其保留较长时间的历史数据,不如保留更长时间的趋势数据。 例如,您可以将历史数据保留 14 天,而趋势数据保留 5 年。
您可以通过参考 数据库大小,get 了解历史数据与趋势数据各自所需空间的大致比例。
在保留较短历史数据的同时,您仍然可以在图形中查看更早的数据,因为图形在显示较早数据时会使用趋势值。
如果历史数据设置为 '0',则 监控项 将 update 仅保留依赖的 监控项 和资产清单数据。不会评估触发器功能,因为触发器评估仅基于历史数据。
作为保留历史数据的另一种方式, 可以考虑使用加载模块的 提供历史数据导出回调函数 功能。
趋势功能是内置的历史数据精简机制,它为数值型数据 每小时存储最小值、最大值、平均值及数值总数。
您可通过以下方式设置趋势数据的保留天数:
趋势数据通常可比历史数据保留更长时间。所有过期数据 将由housekeeper进程自动清理。
Zabbix server在运行时将趋势数据暂存于trend cache中, 随数据流入动态更新。服务器在以下场景会将上一小时 的每个监控项趋势数据写入数据库(供前端调用):
查看图表趋势数据需等待至下一小时开始(若监控项 更新频繁)或最迟下一小时结束(若监控项更新稀少), 最长不超过2小时。
当服务器刷新trend cache且该小时趋势数据已存在 (例如服务器在小时中段重启),需使用update 语句替代简单插入操作。因此大型环境中如需重启, 建议在整点时刻停止服务,并于下一小时初启动, 以避免趋势数据重叠。
历史数据表不参与趋势生成的任何环节。
若趋势保留天数设为'0',Zabbix server将 完全不会计算或存储趋势数据。
趋势数据采用原始值相同的数据类型进行计算存储。 因此无符号数据类型的平均值计算会进行取整, 且数值区间越小精度损失越显著。例如当监控项 值为0和1时,平均值将显示为0而非0.5。
服务器重启可能导致当前小时无符号数据类型 平均值计算出现精度损失。