darkpoon 发表于 2015-11-22 13:30:50

Cacti升级迁移实录

  Cacti升级迁移实录
  1.停掉crontab
  2.备份数据库
  3.rrdtool dump RRD文件
  4.打包RRD文件
  5.打包cacti监控目录
  6.被监控服重启snmpd服务
  
  
  因公司内部的监控比较老,已经不满足新的监控需求。对内部监控服务器进行升级操作
  
  一、停掉crontab里面关于cacti的那行,注释掉就可以了。
  命令:
  crontab -e
  
  二、备份数据库
  mysqldump -uroot -p cacti > cacti-20110824.sql
  将数据库cacti删除;发现不删除数据库,关闭snmpd,删除crontab后仍旧传送数据,删除数据库后就没有了
  
  三、dump RRD文件
  因为升级后rrdtool的版本比较高,如果直接把RRD文件拷贝过去,你打开监控的时候会出现叉图
  打开debug发现报错
  RRDTool Says:
  ERROR: This RRD was created on anotherarchitecture
  使用脚本转换图形文件的格式。dump脚本如下:
  #!/bin/sh
  rrddump="/usr/bin/rrdtool dump"
  xmldir=/tmp/rraxml
  for file in `find /www/rrabak/ -mtime -2|awk -F\/ '{print $NF}'`
  do
  ${rrddump} ${file} > ${xmldir}/${file}.xml
  done
  
  restore脚本如下:
  #!/bin/sh
  rrdrestore="/usr/bin/rrdtoolrestore"
  xmldir=/tmp/rraxml/
  for file in `find ${xmldir} |awk -F\/'{print $NF}' |sed s/.xml//g`
  do
  ${rrdrestore} ${xmldir}${file}.xml /tmp/rra/${file}
  done
  
  先在老的监控服务器上面把RRD文件 dump成xml文件
  然后用tar czvfrrd.tar.gz ./rraxml
  
  再上传到新的监控服务器下面
  tar xzvf rrd.tar.gz
  执行那个resotre.sh脚本文件
  
  再把RRD文件拷贝到监控目录下面的rra目录下面就可以了。
  
  yum install ruby -y
  下载rrdtool-1.4.4-1.slc5.wrl.x86_64.rpmrrdtool-perl-1.4.4-1.slc5.wrl.x86_64.rpm
  rpm -ivh rrdtool*
  安装rrdtool
  
  或者直接全部按权限不动拷贝
  Rsync –avr/var/www/html/cacti ***.***.***.***:/var/www/html
  
  四、把监控目录和mysql数据文件 上传到新的监控服务器上面
  下载最新版本的监控程序和补丁,升级监控服务器。
  
  五、这里注意如果迁移前的老服务器使用了spine获取信息
  就需要安装spine
  cd /root/downloadss/cactimc
  wgethttp://www.cacti.net/downloads/spine/cacti-spine-0.8.7d.tar.gz
  tar xzf cacti-spine-0.8.7d.tar.gz
  cd cacti-spine-0.8.7d
  aclocal
  libtoolize --force
  执行以上命令,有如下输出是正常的
  
  Using `AC_PROG_RANLIB' is rendered obsoleteby `AC_PROG_LIBTOOL'
  Putting files in AC_CONFIG_AUX_DIR,`config'.
  
  autoconf
  autoheader
  automake
  ./configure //如果这里编译出错:error: Cannot find MySQLheaders.Use --with-mysql= to specifynon-default path.需要安装MySQL——devel等关联软件包
  make
  make install
  
  安装了以下两个文件
  /usr/local/spine/bin/spine
  /usr/local/spine/etc/spine.conf
  
  将spine的配置文件复制到/etc下
  cp spine.conf /etc/spine.conf
  vi /etc/spine.conf
  按照安装Cacti时的数据库信息,修改spine.conf的配置
  
  注意了,如果此时在/root/downloadss/cactimc/cacti-spine-0.8.7e执行/usr/local/spine/bin/spine
  它读取的是/root/downloadss/cactimc/cacti-spine-0.8.7e/spine.conf
  所以会提示数据库连接出错
  我们rm -f/root/downloadss/cactimc/cacti-spine-0.8.7e/spine.conf
  再次执行/usr/local/spine/bin/spine,它读取/etc/spine.conf,这样就正常了
  
  下面设置Cacti适用spine
  登录到Cacti
  Console -> Settings -> Paths ->Spine Poller File Path填入/usr/local/spine/bin/spine -> save
  Console -> Settings -> Poller ->Poller Type选择spine ->save
  
  被监控服重启snmpd服务
  不然没数据
页: [1]
查看完整版本: Cacti升级迁移实录