×

Zabbix历史数据处理办法

hqy hqy 发表于2021-05-10 23:07:55 浏览1466 评论0

抢沙发发表评论

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站点即可查看

打赏

本文链接:https://www.kinber.cn/post/1696.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客