Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611980
  • 博文数量: 101
  • 博客积分: 2465
  • 博客等级: 中尉
  • 技术积分: 2126
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-09 15:39
个人简介

https://minminmsn.com/

文章分类

全部博文(101)

文章存档

2018年(2)

2017年(2)

2016年(11)

2015年(14)

2014年(9)

2013年(16)

2012年(47)

分类: 服务器与存储

2015-06-29 16:01:43

Zabbix历史数据处理办法


方法一:本想删除某一时间戳之前的历史数据
date "+%s" -d "20150101"
1420041600


SELECT TABLE_NAME AS "Table", round(((data_length + index_length) / 1024 / 1024), 2) AS Size_in_MB FROM information_schema.TABLES  WHERE table_schema = 'zabbix' ORDER BY Size_in_MB DESC LIMIT 10;    


+----------------+------------+
| Table          | Size_in_MB |
+----------------+------------+
| history_uint   |  189699.00 | 
| history        |  111647.00 | 
| trends_uint    |    6322.92 | 
| trends         |    1822.00 | 
| events         |    1252.00 | 
| history_str    |    1044.00 | 
| alerts         |      96.64 | 
| items          |      21.42 | 
| item_discovery |       6.75 | 
| graphs         |       5.19 | 
+----------------+------------+
10 rows in set (14.15 sec)






DELETE FROM `history_uint` WHERE `clock` < 1420041600;
optimize table history_uint;
DELETE FROM `history` WHERE `clock` < 1420041600;
optimize table history;


注:此方法几乎不可行,300G的历史数据执行命令一个多小时还处在等待锁表状态。删除的速度还没一增长的快。


方法二:不保留历史数据快速
一,备份除历史数据的数据库表
 mysqldump -uroot -p'yourpassword' zabbix  --ignore-table=zabbix.history_uint --ignore-table=zabbix.history --ignore-table=zabbix.trends_uint -ignore-table=zabbix.trends --ignore-table=zabbix.events --ignore-table=zabbix.history_str >/data/backup20150626.sql
二,新建数据库
create database zabbix2 character set utf8;
GRANT ALL PRIVILEGES ON zabbix2.* TO 'zabbix'@'localhost' IDENTIFIED BY  'yourpassword'; 
这里是建立的zabbix2数据库,名字可以随意取
三,导入原架构和新数据
mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/schema.sql 
mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/images.sql 
mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/data.sql 
mysql -uroot -p'yourpassword' zabbix2 < /data/backup20150626.sql
如果开始没有剔除上面忽略的4个表,这里上面三行就不需要了。 
四,修改zabbix_server连接数据库配置文件
grep -i DBName /usr/local/zabbix/etc/zabbix_server.conf
#DBName=zabbix
DBName=zabbix2
五,修改zabbix站点zabbix.conf配置文件
grep -i database /var/www/html/conf/zabbix.conf.php
$DB['DATABASE'] = 'zabbix2';
// SCHEMA is relevant only for IBM_DB2 database
六,重启服务
service zabbix_server restart
service mysqld restart(不重启也可)


此方法补充:
如果想看以前的历史数据,只需要2步即可
1,备份一份站点,修改database为老的数据库默认zabbix
2,web浏览器打开连上老数据库的zabbix站点即可查看
阅读(6660) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~