三、解决方案

google、baidu了一下,发生这个问题的原因是因为所有rrd库需要全部重新dump和restore一次;

好了上脚本:

从老的cacti服务器上dump所有的rrd文件为xml file,共计9K多张:

  1. #!/bin/sh  
  2.  
  3. rrddump="/usr/bin/rrdtool dump" 
  4.  
  5. xmldir=/tmp/rraxml  
  6.  
  7. for file in `find /var/www/html/cacti/rra/ -mtime -2 |awk -F\/ '{print $NF}'`  
  8.  

#遍历rra目录,查找近2天修改过的rrd文件;

  1. do 
  2.  
  3. ${rrddump} ${file} > ${xmldir}/${file}.xml  
  4.  
  5. done  
  6.  

tar走rraxml目录到新监控服务器上解压:restore脚本如下:

  1. #!/bin/sh  
  2.  
  3. rrdrestore="/usr/bin/rrdtool restore" 
  4.  
  5. xmldir=/tmp/rraxml/  
  6.  
  7. for file in `find ${xmldir} |awk -F\/ '{print $NF}' |sed s/.xml//g`  
  8.  

#遍历xml目录,并去掉xml后缀,直接还原到rra目录下

  1. do 
  2.  
  3. ${rrdrestore} ${xmldir}${file}.xml /cacti/rra/${file}  
  4.  
  5. done  
  6.  
  7. chown cactiuser:cactiuser /cacti/rra -R  
  8.  

完成后,再次打开cacti监控显示正常;迁移成功;

用这个方法其实是用来备份rra的,这次正好顺便备份一下。

通过文章的介绍,我们学会了Cacti的数据备份与迁移,以后再遇到这样的问题就会解决了!

  • CACTI基本设置之安全篇
  • CACTI基本设置之测试SNMP服务
  • CACTI基本设置之设置交换设备
  • CACTI基本设置之设置Net-SNMP
  • Cacti的工作流程
  • Cacti的架构


相关内容