如何備份Cacti的數據
Cacti的數據備份與遷移:
一、工作流
安裝mysql;php;apache;rrdtool后;
將cacti目錄tarball后,復制到雙線機房新監控服務器上解壓;
cactid目錄tarball后,復制到雙線機房新監控服務器上解壓;
mysql數據庫dump或者tarball后,復制到雙線機房新監控服務器上解壓;
- #mysqldump -p cacti >cacti.sql
重新賦予cactiuser對于數據庫cacti所有權限;
- grant all . cacti.* to cactiuser@localhost identified by 'cactipassword';
二、故障發生
打開cacti可以正常登錄和控制,檢查graph management,打開所有的圖無顯示;于是打開debug模式:
- *Turn . Graph Debug Mode.
- RRDTool Says:
- ERROR: This RRD was created . other architecture
三、解決方案
google、baidu了一下,發生這個問題的原因是因為所有rrd庫需要全部重新dump和restore一次;
好了上腳本:
從老的cacti服務器上dump所有的rrd文件為xml file,共計9K多張:
- #!/bin/sh
- rrddump="/usr/bin/rrdtool dump"
- xmldir=/tmp/rraxml
- for file in `find /var/www/html/cacti/rra/ -mtime -2 |awk -F\/ '{print $NF}'`
- #遍歷rra目錄,查找近2天修改過的rrd文件;
- do
- ${rrddump} ${file} > ${xmldir}/${file}.xml
- done
tar走rraxml目錄到新監控服務器上解壓:restore腳本如下:
- #!/bin/sh
- rrdrestore="/usr/bin/rrdtool restore"
- xmldir=/tmp/rraxml/
- for file in `find ${xmldir} |awk -F\/ '{print $NF}' |sed s/.xml//g`
- #遍歷xml目錄,并去掉xml后綴,直接還原到rra目錄下
- do
- ${rrdrestore} ${xmldir}${file}.xml /cacti/rra/${file}
- done
- chown cactiuser:cactiuser /cacti/rra -R
完成后,再次打開cacti監控顯示正常;遷移成功;
用這個方法其實是用來備份rra的,這次正好順便備份一下。
【編輯推薦】