历史和趋势是Zabbix中存储采集数据的两种方式。
历史记录保留每个采集到的数值,而趋势数据则按小时存储平均值,因此对资源消耗较低。
您可以设置历史数据保留的天数:
在监控项属性中form
批量更新监控项时
当[setting
up](/manual/web_interface/frontend_sections/administration/general#housekeeper) housekeeper tasks
Any older data will be removed by the housekeeper.
The general strong advice is to keep history for the smallest possible number of days and that way not to overload the database with lots of historical values.
Instead of keeping a long history, you can keep longer data of trends. For example, you could keep history for 14 days and trends for 5 years.
You can get a good idea of how much space is required by history versus trends data by referring to the database sizing page时
即使保留较短的历史数据,您仍能在图表中查看较旧的数据,因为图表会使用趋势值来显示历史数据。
如果将历史数据设置为'0',监控项将update 仅依赖监控项和资产清单。不会评估任何触发器函数,因为触发器评估仅基于历史数据。
作为保留历史数据的替代方案,可考虑使用history export 可加载模块的功能。
趋势功能是内置的历史数据精简机制,它会为数值型数据存储每小时的最小值、最大值、平均值以及数值总数。
您可以通过以下方式设置趋势数据的保留天数:
趋势数据通常可以比历史数据保留更长时间。所有过期数据将由housekeeper清理。
Zabbix server在运行时将趋势数据累积到trend cache中。服务器在以下情况下会将每个监控项的前一小时趋势数据写入数据库(供前端查询):
要在图表中查看趋势数据,您至少需要等待到下一小时开始(若监控项更新频繁),最多等待到下一小时结束(若监控项更新不频繁),最长不超过2小时。
当服务器刷新trend cache且数据库中已存在该小时段的趋势数据时(例如服务器在小时中段重启),服务器需要使用update语句而非简单插入。因此在大型部署中如需重启,建议在一小时结束时停止服务器,并在下一小时开始时启动,以避免趋势数据重叠。
历史数据表不参与趋势数据的生成过程。
若趋势保留天数设为'0',Zabbix server将不会计算或存储任何趋势数据。
趋势数据使用与原值相同的数据类型进行计算和存储。因此无符号数据类型的平均值计算会进行取整处理,且数值区间越小结果精度越低。例如当监控项的值为0和1时,平均值将为0而非0.5。
此外,重启服务器可能导致当前小时无符号数据类型平均值计算的精度损失。