备份与恢复cacti

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:
[背景]在前两天公司的cacti监控服务器硬盘出现损坏,导致系统不停得重复启动,服务无法正常运行。心乱如麻啊,因为我也面临着近700台服务器的监控,这个数字,吓人。与是就想到了恢复,可数据还在这块硬盘里啊!怎么办呢?挂盘吧,问了一圈发现,我这台监控机是较差的一台Dell1850,没有与其类型相同的服务器,没办法,哎,就想再申请一台一样型号的机子做个bsd系统后,再挂。申请完后,IDC人帮我去领机子,我逞这时,下去拿硬盘,我带着不死心,又重新登录到freebsd的单用户下执行了fsck,哈哈,按着它一路的要求做下来,居然系统可以正常运行了,乐得我呀!但我知道,也不能指望它跑多久了,因为,我从网上看到好多说发生这种状况,已经判定为死刑了(而且我的判定是明智的,因为第二天,这台服务器正式完蛋了)。所以,我还是快把数据备份下来吧!
进入主题
[流程]
备份Cacti
(1)cacti文件的备份
这个简单就是备份cacti文件的目录(除rra目录外)
(2)mysql备份
mysqldump -p cacti  >/tmp/cacti.sql.20090823
(3)备份rra目录
dumprrd.sh
#!/bin/sh
rrddump="/usr/local/bin/rrdtool dump"
xmldir="/tmp/mysqlbackup/rraxml"
xmlbackup="/tmp/mysqlbackup/rrabak"
mysqlbackupDIR="/tmp/mysqlbackup"
eMailFile=$mysqlbackupDIR/email.txt
rrdpath="/usr/local/share/cacti/rra/"
DATE=`date +"%y-%m-%d"`

if [ ! -e ${xmldir} ];then
   mkdir ${xmldir}
fi

if [ ! -e ${xmlbackup} ];then
  mkdir ${xmlbackup}
fi

 
echo "" >$eMailFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile

#create rra => xml
for file in `find /usr/local/share/cacti/rra/ -mtime -2 | awk -F\/ '{print $NF}'`
  do
    ${rrddump} ${rrdpath}${file} > ${xmldir}/${file}.xml
  done

if [  `ls /tmp/mysqlbackup/rraxml/|wc -l`  -ge 2 ];then
   #tar backup
   cd ${mysqlbackupDIR}
   tar czvf ${xmldir}.${DATE}.tar.gz rraxml >/dev/null 2>&1
   mv ${xmldir}.${DATE}.tar.gz ${xmlbackup}

#delete file&dir
  if [ $? -eq 0 ];then
    echo "rraxml.${DATE}.tar.gz Backup Success!">> $eMailFile
    rm -fdr ${xmldir}
    mkdir ${xmldir}
    /usr/bin/find ${mysqlbackupDIR}/rrabak -type f -ctime +2 | /usr/bin/xargs /bin/rm >/dev/null 2>&1
    echo "Rra Backup is ok!" >> $eMailFile
  fi
else 
   echo "Rra Backup is fail!" >> $eMailFile 
fi
/soft/mail.pl "Cacti Backup of rra backup!" 

恢复cacti
(1)安装cacti环境
这个不在话下,安装freebsd(为什么我选择它呢,因为,我觉得安装cacti很方便,哈哈。所以就选择这款操作系统了。)注意,
rrdtool的版本一定要高与或者等同与你原先备份的版本.所以,我需要升级ports,在升级ports前,我先把系统升级下。
升级freebsd
freebsd-update fetch install
重启
升级ports
portsnap fetch extract
重启
[后期更新ports
portsnap fetch update ]
过后,安装便可以参考
http://5ydycm.blog.51cto.com/115934/113305
在这里添加下,安装spine和monitor插件(注意,如果你原先没有monitor插件看这个,如果有的话,就没必要安装了,因为你已经备份了文件与数据库,就基本上支持了这个插件安装环境了)
spine安装
whereis cacti-spine
cd /usr/ports/net-mgmt/cacti-spine
make install clean

monitor插件的安装,需要先安装cacti-plugin-arch
从http://cactiusers.org/下载,过后解压
将其cacti-plugin-xxxxxx.diff 复制到cacti安装目录下,并且在其cacti安装目录下执行
patch -p1 -N < cacti-plugin-xxxxxx.diff
完了吗?没有,还有一步啊,
mysql cacti < pa.sql(需要操作)
<后期
到User Managemant=》admin下把Plugin Management选中
过后,就可以在cacti安装目录下的include/global.php
添加$plugins[] = 'monitor';
好了。环境基本ok了。>
(2)恢复cacti文件
简单,上传到网站目录下,如/usr/local/share/cacti
(3)恢复mysql的cacti数据库
mysql cacti <cacti.sql.20090823
GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';(自己修改匹配你原来的用户)
flush privileges;
(4)恢复rra
restorerra.sh
#!/bin/sh
rrdrestore="/usr/local/bin/rrdtool restore"
xmldir=/tmp/rraxml/
for file in `find ${xmldir} | awk -F\/ '{print $NF}' | sed s/.xml//g`
  do
     echo $file
    ${rrdrestore} ${xmldir}${file}.xml /usr/local/share/cacti/rra/${file}
  done
chown -R cacti:cacti /usr/local/share/cacti/rra

OK,再给log授权。在这里提醒大家注意,权限的问题,不过,这些小的细节大家只要多注意事项观察日志都应该能解决掉的。

好了,到此为止,我已经将公司的监控服务器恢复好了,现在观察,运行不错。700台,9000个监控元素,只跑了60s,不错。大功告成,闪了。



本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/195479,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
21天前
|
SQL 存储 关系型数据库
mysql数据库备份与恢复
mysql数据库备份与恢复
|
8月前
|
SQL 存储 关系型数据库
MySQL备份和恢复
MySQL备份和恢复
131 0
|
9月前
|
存储 安全 关系型数据库
MySQL备份恢复
MySQL备份恢复
65 0
|
9月前
|
关系型数据库 数据库
Mairadb数据库的备份和恢复
Mairadb数据库的备份和恢复
142 1
|
11月前
|
SQL 存储 运维
MySQL备份与恢复
MySQL备份与恢复
|
存储 SQL 安全
Mysql数据库的备份与恢复
Mysql数据库的备份与恢复
117 0
Mysql数据库的备份与恢复
|
关系型数据库 MySQL 数据库
MySQL数据库的备份与恢复(下)
一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。
152 0
|
SQL 关系型数据库 MySQL
MySQL数据库的备份与恢复(上)
一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。
248 0
|
安全 关系型数据库 MySQL
MySQL数据库的备份与恢复(中)
一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。
205 0
|
存储 关系型数据库 MySQL
MySQL备份恢复-1
MySQL备份恢复-1
84 0