Zabbix-Server数据库清除历史数据

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

由于Zabbix数据库历史数据过大,占用磁盘过多空间,需清理数据并释放空间。

处理 1、查看表占用空间情况 SELECTtable_nameAS “Tables”, round(((data_length + index_length) / 1024 / 1024), 2) “Size in MB” FROMinformation_schema.TABLESWHERE table_schema = zabbix ORDER BY (data_length + index_length) DESC; Zabbix-Server数据库清除历史数据插图 2、分析表数据

从上面较大的表来看,主要集中在historyhistory_uint 两张表,而且是存储历史数据。

查看数据表结构

查看history_uint和history数据表结构,可以根据clock时间戳来进行数据删除

MariaDB [zabbix]> desc history; +——–+———————+——+—–+———+——-+| Field | Type | Null | Key | Default | Extra | +——–+———————+——+—–+———+——-+ | itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | double(16,4) | NO | | 0.0000 | | | ns | int(11) | NO | | 0 | | +——–+———————+——+—–+———+——-+ 4 rowsinset (0.00 sec) MariaDB [zabbix]> desc history_uint; +——–+———————+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra |+——–+———————+——+—–+———+——-+| itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | bigint(20) unsigned | NO | | 0 | | | ns | int(11) | NO | | 0 | |+——–+———————+——+—–+———+——-+4 rows in set (0.26 sec) 3、清理表数据

准备清理时建议停止zabbix-server服务以免出现其他问题。

获取30天前时间戳 date -d “30 days ago” +%s 按照时间戳删除数据,并优化 delete from history where clock < 1606905274; #这个操作会锁定表,不要经常操作 optimize table history;

自动删除历史数据脚本:

#!/bin/bash User=“zabbix”Passwd=“zabbix” #取30天之前的时间戳 Date=`date -d “30 days ago” +%s` $(which MySQL) -u${User} -p${Passwd} -e ” use zabbix; DELETE FROM history WHERE clock <$Date; optimize table history; DELETE FROM history_uint WHERE clock <$Date; optimize table history_uint;
免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容