zabbix 清理历史数据

时间:2022-01-15 05:42:56

    项目上线不到一个月,zabbix数据居然快100G,监控项太多,数据量太大,zabbix负载重,暂时不想升级硬件,只好内部挖掘下,清除下历史数据;一般保留1个月的数据,zabbix这个项目只是做监控报警用,数据保留太多没太大参考意义;

    一般都是这几个表太大, history, history_uint,history_log,有的直接了当直接清空表,简洁方便,不过要是有人需要参考数据,那还蛮尴尬的;有的做一个独立分表,做存储过程,蛮高效,不过项目不一样只做简单监控不必那么麻烦;

套路都一样:停掉zabbix,mysql添加skip new以便于删除数据后压缩存储空间,截取需要清除的时间点:

root@Testl]$ date +%s -d"20160929"

1475078400

mysql> delete from history where clock<1475078400;

Query OK, 36093 rows affected (43.64 sec)

 

mysql> delete from history_uint whereclock < 1475078400;

Query OK, 21501392 rows affected (25 min51.48 sec)

 

mysql> optimize table history;

Query OK, 12175692 rows affected (5 min9.16 sec)

Records: 12175692  Duplicates: 0 Warnings: 0

 

mysql> optimize table history_uint;

Query OK, 145195609 rows affected (54 min29.07 sec)

Records: 145195609  Duplicates: 0 Warnings: 0

漫长时间等待以后看下效果:

原来数据:

-rw-rw---- 1 mysql mysql 1.4G Oct 28 13:23history.ibd

-rw-rw---- 1 mysql mysql  12M Oct 28 13:23 items.ibd

-rw-rw---- 1 mysql mysql  96M Oct 28 13:23 events.ibd

-rw-rw---- 1 mysql mysql  17G Oct 28 13:23 history_uint.ibd

-rw-rw---- 1 mysql mysql  56G Oct 28 13:23 history_log.ibd

-rw-rw---- 1 mysql mysql 252M Oct 28 13:23 trends_uint.ibd

-rw-rw---- 1 mysql mysql  72M Oct 28 13:23 trends.ibd

-rw-rw---- 1 mysql mysql 112K Oct 28 13:59sessions.ibd

压缩中:

缩进过程生成/#sql-5f11_3.ibd文件,作业完毕就是history_uint.ibd文件;

find -size +50M -exec ls -lh {} \;

-rw-rw---- 1 mysql mysql 960M Oct 28 14:42./history.ibd

-rw-rw---- 1 mysql mysql 9.2G Oct 28 15:31./#sql-5f11_3.ibd

-rw-rw---- 1 mysql mysql 56G Oct 28 13:23./history_log.ibd

-rw-rw---- 1 mysql mysql 96M Oct 28 13:23 ./events.ibd

-rw-rw---- 1 mysql mysql 252M Oct 28 13:23./trends_uint.ibd

-rw-rw---- 1 mysql mysql 72M Oct 28 13:23./trends.ibd

-rw-rw---- 1 mysql mysql 17G Oct 28 14:59./history_uint.ibd

最终删两个表以后数据:

zabbix]$ find -size +50M -execls -lh {} \;

-rw-rw---- 1 mysql mysql 960M Oct 28 15:42./history.ibd

-rw-rw---- 1 mysql mysql 56G Oct 28 15:42./history_log.ibd

-rw-rw---- 1 mysql mysql 96M Oct 28 15:42./events.ibd

-rw-rw---- 1 mysql mysql 252M Oct 28 15:41./trends_uint.ibd

-rw-rw---- 1 mysql mysql 72M Oct 28 15:41./trends.ibd

-rw-rw---- 1 mysql mysql 11G Oct 28 15:42./history_uint.ibd

完了以后,重启mysqlzabbixnginx试试;

看着history_log那么大好忧伤,准备truncate掉。以后可以做个脚本,每月定期执行删除记录;

原文链接:http://xpu2001.blog.51cto.com/890980/1866927