abbix運行一段時間之后,會留下大量的歷史 數據,會發現zabbix的數據庫一直在增大。運行3個月后筆者的數據庫達到了5.7G,可能造成系統性能下降,查看歷史數據時查詢速度緩慢。
zabbix里面最大的表就是歷史記錄的表了,網上很多人都是寫全部清空這些表的數據,其實我們可以按時間來刪除里面的歷史記錄。
里面最大的表是 “history” 和 “history_uint”兩個表;
<ignore_js_op>
zabbix里面的時間是用的時間戳方式記錄,我們可以轉換一下,然后根據時間戳來刪除;
比如要刪除2014年的1月1號以前的數據
1、先將標准時間轉換為時間戳
# date +%s -d "2014-01-01 00:00:01"
1388505601
2、mysql清理數據
- mysql> DELETE FROM `history_uint` WHERE `clock` < 1388505601;
- mysql> optimize table history_uint;
注:執行過第二行命令之后可能會需要很長的一段時間,中間不要中斷,否則容易丟失數據。
這是比較實用的按照時間段刪除歷史數據,也有方法可以全部清除歷史監控數據
zabbix清空歷史記錄mysql數據庫操作:
- mysql -uroot -p 輸入mysql密碼
- use zabbix;
- truncate table history;
- optimize table history;
- truncate table history_str;
- optimize table history_str;
- truncate table history_uint;
- optimize table history_uint;
- truncate table trends;
- optimize table trends;
- truncate table trends_uint;
- optimize table trends_uint;
- truncate table events;
- optimize table events;
注意:此操作會清空zabbix所有歷史監控數據,請操作之前備份好數據庫