Cacti的數(shù)據(jù)備份與遷移
我經(jīng)常用Cacti,會(huì)遇到各種想不到的問(wèn)題 ,以防止數(shù)據(jù)丟失,我們隨時(shí)要進(jìn)行Cacti的數(shù)據(jù)備份與遷移!
一、工作流
安裝mysql;php;apache;rrdtool后;
將cacti目錄tarball后,復(fù)制到雙線機(jī)房新監(jiān)控服務(wù)器上解壓;
cactid目錄tarball后,復(fù)制到雙線機(jī)房新監(jiān)控服務(wù)器上解壓;
mysql數(shù)據(jù)庫(kù)dump或者tarball后,復(fù)制到雙線機(jī)房新監(jiān)控服務(wù)器上解壓;
- #mysqldump -p cacti >cacti.sql
重新賦予cactiuser對(duì)于數(shù)據(jù)庫(kù)cacti所有權(quán)限;
- grant all . cacti.* to cactiuser@localhost identified by 'cactipassword';
二、故障發(fā)生
打開(kāi)cacti可以正常登錄和控制,檢查graph management,打開(kāi)所有的圖無(wú)顯示;于是打開(kāi)debug模式:
- *Turn . Graph Debug Mode.
- RRDTool Says:
- ERROR: This RRD was created . other architecture
#p#
三、解決方案
google、baidu了一下,發(fā)生這個(gè)問(wèn)題的原因是因?yàn)樗衦rd庫(kù)需要全部重新dump和restore一次;
好了上腳本:
從老的cacti服務(wù)器上dump所有的rrd文件為xml file,共計(jì)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天修改過(guò)的rrd文件;
- do
- ${rrddump} ${file} > ${xmldir}/${file}.xml
- done
tar走rraxml目錄到新監(jiān)控服務(wù)器上解壓: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
完成后,再次打開(kāi)cacti監(jiān)控顯示正常;遷移成功;
用這個(gè)方法其實(shí)是用來(lái)備份rra的,這次正好順便備份一下。
通過(guò)文章的介紹,我們學(xué)會(huì)了Cacti的數(shù)據(jù)備份與遷移,以后再遇到這樣的問(wèn)題就會(huì)解決了!
【編輯推薦】