zabbix数据库清理二
【起因】
zabbix 由于监控条目过多,模板套用不当导致历史数据过大, 因此导致磁盘空间暴涨, 现在准备清理数据库。
【解决思路】
- 先停止数据库服务
- 停止zabbix服务
- 进入数据库存储路径/var/lib/mysql
- 修改 my.cnf配置
- 重启数据库
- 分析history表
- 按照时间戳删除两周前数据方法或者是更久之前的文件
- 启动 mysql,zabbix,httpd 服务
- 缩减后对比存储空间
- 检查zabbix服务是否运行正常
【解决步骤】
- 先停止数据库服务
[root@zabbix ~]# systemctl stop mysqld
- 停止zabbix服务
[root@zabbix ~]# systemctl stop zabbix-server.service
- 进入数据库存储路径/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
- 修改 my.cnf配置
vim /etc/my.cnf 添加如下内容:skip-new
- 重启数据库
[root@zabbix ~]# systemctl restart mysqld
- 分析history表
[root@zabbix ~]#mysql -uroot -p mysql >show databases; mysql >use zabbix; mysql> desc history; mysql> select max(itemid) from history; 根据时间戳删除文件
- 按照时间戳删除两周前数据方法或者是更久之前的文件
[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;来清除数据库文件。
- 启动 mysql,zabbix,httpd 服务
[root@zabbix ~]# systemctl restart mysqld [root@zabbix ~]# systemctl start zabbix [root@zabbix ~]# systemctl start httpd
- 缩减后对比存储空间
[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
- 检查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