Zabbix歷史數據處理辦法

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章