最近有一次線上zabbix監控資料庫佔用硬碟過多,達到80%多,為了釋放硬碟空間,清理zabbix歷史數據是非常必要的,只要清理過程如下:
清理腳本如下:
#!/bin/bash
User="root"
Passwd="123456"
Date=`date -d $(date -d "-30 day" +%Y%m%d) +%s` #取30天之前的時間戳
$(which mysql) -u${User} -p${Passwd} -e "
use zabbix;
DELETE FROM history WHERE 'clock' < $Date;
DELETE FROM history_str WHERE 'clock' < $Date;
DELETE FROM history_uint WHERE 'clock' < $Date;
DELETE FROM trends WHERE 'clock' < $Date;
DELETE FROM trends_uint WHERE 'clock' < $Date;
DELETE FROM events WHERE 'clock' < $Date;
"
但是執行腳本過程中導致伺服器系統cpu佔用過高,畢竟是zabbix資料庫數據量太大的原因造成的,所以用以下方法來處理解決問題:
mysql -uroot -p
mysql> show processlist; #查看執行腳本進程
mysql> kill 2070788; #殺死進程
mysql> truncate table history;
mysql> truncate table history_str;
mysql> truncate table history_uint;
mysql> truncate table trends;
mysql> truncate table trends_uint;