问题描述

zabbix server 平稳运行有一段时间了,但是最近问题却来了,今天早上收到zabbixserver磁盘空间不足的告警。通过查看之后发现是大部分数据是zabbix 库的的数据 在进一步查看发现是history表和history_uint数据太多导致磁盘占用过多。

问题分析

history_uint
该表存储的是监控项的无符号整型的数据。
该数据的保存时长,取决于在监控项设置的 历史数据保留时长。
 
history
这个表保存的是浮点型的。
像 history_str 等保存的是 字符型数据。这些都是我们在设置监控项的对应的信息类型决定的。
该数据的保存时长,取决于在监控项设置的 历史数据保留时长
 
针对这个问题,我打算删除 history_uint 和 history 的一些历史数据。
要删除history_uint里的数据,还需要注意一点,由于数据量比较多,我建议可以分多次少量数据进行删除,因为我一次删除90天的时候CPU已经吃不消了...
 
 
 
 
这样可以避免一次性删除数据过多导致数据库的负载比较大。(或者可以使用limit 10000)
处理过程
我这里需要删除90天以前的数据下面是我的操作过程
获取时间戳
#通过如下命令进行获取90天以前的时间戳
[root@zabbix-server ~]# date -d $(date -d "-90 day" +%Y%m%d) +%s
1590105600
登录数据库操作
[root@zabbix-server ~]# mysql -uzabbix -p
Enter password:
mysql> use zabbix;
Database changed #delete history_uint
mysql> delete from history_uint where clock < 1590105600 LIMIT 10000;
Query OK, 1653 rows affected (1 min 45.42 sec)
#delete history
mysql> delete from history where clock < 1590105600 LIMIT 10000;
Query OK, 0 rows affected (24.72 sec)
释放空间
上面执行删除后,数据的存储空间是没有减少的,因为对于delete from table_name where xxx 带条件的删除,不管是innodb还是MyISAM都不会释放空间,需要进行OPTIMIZE TABLE操作,进行释放空间。
注意:在optimize table '表名' 运行过程中,MySQL会进行锁表。
optimize table history_uin
mysql>  optimize table history_uint;
+---------------------+----------+----------+-------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------------------+----------+----------+-------------------------------------------------------------------+
| zabbix.history_uint | optimize | note | Table does not support optimize, doing recreate + analyze instead |
| zabbix.history_uint | optimize | status | OK |
+---------------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (5 min 33.76 sec)
optimize table history
mysql>  optimize table history;
+----------------+----------+----------+-------------------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+----------------+----------+----------+-------------------------------------------------------------------+
| zabbix.history | optimize | note | Table does not support optimize, doing recreate + analyze instead |
| zabbix.history | optimize | status | OK |
+----------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (1 min 39.51 sec)

问题解决

待以上步骤都完成以后,检查磁盘可以看到问题解决。
不过想要一劳永益的话的话 还是需要写一个脚本来处理这个问题

#!/bin/bash
User="zabbix"
Passwd="zabbix"
Date=`date -d $(date -d "-90 day" +%Y%m%d) +%s`
echo $Date
$(which mysql) -u${User} -p${Passwd} -e "
use zabbix;
DELETE FROM history WHERE 'clock' < '$Date';
optimize table history;
DELETE FROM history_str WHERE 'clock' < '$Date';
optimize table history_str;
DELETE FROM history_uint WHERE 'clock' < '$Date';
optimize table history_uint;
DELETE FROM history_text WHERE 'clock' < '$Date';
optimize table history_text;
DELETE FROM trends WHERE 'clock' < '$Date';
optimize table trends;
DELETE FROM trends_uint WHERE 'clock' < '$Date';
optimize table trends_uint;
DELETE FROM events WHERE 'clock' < '$Date';
optimize table events;
"

  

 
另外历史数据过多是由于我们保存的历史数据的时间所致,我们可以根据需求设置历史数据的保留时长,例如一些相对不太重要的数据,我们可以将该值设置的更短一些,这样数据量也就随着减少了。
 

最新文章

  1. 踢出非法Linux用户
  2. speech recognition resource
  3. linux命令(2):cd命令
  4. PHP学习笔记:keditor的使用
  5. 链表操作,空间复杂度要求为O(1)
  6. python学习小结8:I/O
  7. leetcode@ [116/117] Populating Next Right Pointers in Each Node I &amp; II (Tree, BFS)
  8. Java队列实现
  9. 1 weekend110的Linux带图形系统安装 + 网络配置 + 静态IP设置
  10. 程序从高版本降到2.0,数据集报错 TypedTableBase
  11. QT:多线程HTTP下载文件
  12. 论JSON的重要性☞异步上传过程中data取多组值的方法
  13. twisted学习之reactor
  14. FZU - 2150 bfs [kuangbin带你飞]专题一
  15. java面试题总结
  16. Kafka 详解(三)------Producer生产者
  17. vue页面无操作10分钟内调转到登录页面
  18. LAB1 partI
  19. js获取当前时区GMT
  20. 2017-2018-2 『网络对抗技术』Exp3:免杀原理与实践

热门文章

  1. jvm源码解读--13 gc_root中的栈中oop的mark 和copy 过程分析
  2. Winform中生成自动控件
  3. Tomcat7+ 弱口令 &amp;&amp; 后台getshell漏洞
  4. 几个垃圾XSS
  5. 【Android面试查漏补缺】之Handler详解,带你全面理解Handler消息机制
  6. 实战爬取某网站图片-Python
  7. 关于协议栈XDATA,内存溢出的小结
  8. awk-02-内置变量
  9. 从 FFmpeg 性能加速到端云一体媒体系统优化
  10. Python小白的数学建模课-18.最小生成树问题