运维人

zabbix 清理过久的历史信息

当我们的zabbix运行时间久了,监控的节点多了,数据信息会增长的很快,想备份里面的数据库时,要浪费大量的时间,zabbix里面最大的表就是历史记录的表了,网上很多人都是写全部清空这些表的数据,其实我们可以按时间来删除里面的历史记录;

里面最大的表是 “history” 和 “history_uint”两个表;

zabbix里面的时间是用的时间戳方式记录,我们可以转换一下,然后根据时间戳来删除;

比如要删除2012年的11月25号以前的数据

1、先将标准时间转换为时间戳

# date +%s -d "2012-11-25 00:00:00"
1353772800

2、mysql清理数据

mysql> use zabbix;
mysql> DELETE FROM `history_uint` WHERE `clock` < 1327939201;
mysql> optimize table history_uint;

注:执行过第二行命令之后可能会需要很长的一段时间,中间不要K掉了,否则容易丢失数据的。

    分享到:
码字很辛苦,转载请注明来自运维人《zabbix 清理过久的历史信息》

评论