zabbix数据库清理


【起因】

zabbix 由于监控条目过多,模板套用不当导致历史数据过大, 因此导致磁盘空间暴涨, 现在准备清理数据库。


【解决思路】


1,先停止数据库服务

2,停止zabbix服务

3,进入数据库存储路径/var/lib/mysql

4,修改 my.cnf配置

5,重启数据库

6,分析history表

7,按照时间戳删除两周前数据方法或者是更久之前的文件

8,启动 mysql,zabbix,httpd 服务

9,缩减后对比存储空间

10,检查zabbix服务是否运行正常


【解决步骤】

1,先停止数据库服务

[root@zabbix ~]# systemctl stop mysqld

2,停止zabbix服务

[root@zabbix ~]# systemctl stop zabbix-server.service

3,进入数据库存储路径/var/lib/mysql

[root@zabbix ~]# cd  /var/lib/mysql/zabbix
[root@zabbix zabbix]#du -sh  *
发现两个最大的文件history, history_unit 
2个history文件一共用去20G左右空间
[root@zabbix zabbix]# df -TH 
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        28G  23G   5.0G  83% /
devtmpfs                devtmpfs  4.2G     0  4.2G   0% /dev
tmpfs                   tmpfs     4.2G     0  4.2G   0% /dev/shm
tmpfs                   tmpfs     4.2G  9.3M  4.2G   1% /run
tmpfs                   tmpfs     4.2G     0  4.2G   0% /sys/fs/cgroup
/dev/sda1               xfs       1.1G  173M  891M  17% /boot
tmpfs                   tmpfs     838M     0  838M   0% /run/user/0

4,修改 my.cnf配置

vim   /etc/my.cnf 
添加如下内容:skip-new

5,重启数据库

[root@zabbix ~]# systemctl restart mysqld

6,分析history表

[root@zabbix ~]#mysql -uroot -p
mysql >show databases;
mysql >use zabbix;
mysql> desc history;
mysql> select max(itemid) from history;
根据时间戳删除文件

7,按照时间戳删除两周前数据方法或者是更久之前的文件

[root@zabbix ~]# date +%s -d "Mar 2, 2019 00:00:00" 
1551456000
我这里是因为数据没有太重要关系,所以我就选择truncate来删除历史文件。
mysql> truncate table history;
mysql> truncate table history_uint;
当然你也可以使用delete from table history where <1551456000;来清除数据库文件。

8,启动 mysql,zabbix,httpd 服务

[root@zabbix ~]# systemctl restart mysqld
[root@zabbix ~]# systemctl start zabbix
[root@zabbix ~]# systemctl start httpd

9,缩减后对比存储空间

[root@zabbix zabbix]# df -TH 
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        28G  9.7G   19G  35% /
devtmpfs                devtmpfs  4.2G     0  4.2G   0% /dev
tmpfs                   tmpfs     4.2G     0  4.2G   0% /dev/shm
tmpfs                   tmpfs     4.2G  9.3M  4.2G   1% /run
tmpfs                   tmpfs     4.2G     0  4.2G   0% /sys/fs/cgroup
/dev/sda1               xfs       1.1G  173M  891M  17% /boot
tmpfs                   tmpfs     838M     0  838M   0% /run/user/0

10,检查zabbix服务是否运行正常

[root@zabbix zabbix]# netstat -lantup |grep zabbix 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      8417/zabbix_server  
tcp6       0      0 :::10051                :::*                    LISTEN      8417/zabbix_server  
[root@zabbix zabbix]# netstat -lantup |grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      29876/mysqld        
[root@zabbix zabbix]# netstat -lantup |grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      2620/httpd          
tcp6       0      0 :::443                  :::*                    LISTEN      2620/httpd