首页 > 代码库 > Cacti数据迁移必须成功版

Cacti数据迁移必须成功版

环境:Centos6.4 32位。Apache,Mysql。

1,安装LAMP并且可以成功打开info.php
#yum -y install httpd php php-mysql mysql mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby php-snmp ruby-devel rrdtool-ruby rrdtool-perl gcc gcc-c++


#vim /etc/httpd/conf/httpd.conf

找到DirectoryIndex所在的位置,添加一行

DirectoryIndex  index.php


#/etc/init.d/iptables stop   //防火墙一定要关闭。不然无法打开info.php


#service httpd restart

#service mysqld restart

#chkconfig httpd on

#chkconfig mysqld on


#vi /var/www/html/info.php

<?php

phpinfo();

?>



  • 安装rrdtool //原来cacti的rrdtool是在/usr/local下编译安装的版本号是1.4.7,要保持一致。

   安装相关依赖包


   #yum install cairo-devel libxml2-devel pango-devel

   #cd /usr/local

   #wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz


    
   编译安装rrdtool:
   tar zxvf rrdtool-1.4.7.tar.gz
   cd rrdtool-1.4.7
   ./configure --prxfix=/usr/local/rrdtool
   make
   make install
   cd ..



  • 安装spine //原来cacti的spine是在/usr/local下编译安装的,要保持一致。

   #cd /usr/local

   #wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
   tar xvzf cacti-spine-0.8.7g.tar.gz
   cd cacti-spine-0.8.7g
   ./configure
   make
   make install

  •    默认安装在/usr/local/spine/目录下,复制一份spine的配置文件。

   cd /usr/local/spine/etc/
  cp spine.conf.dist  spine.conf




  •   编辑spine.conf文件,设置Cacti数据的连接信息。

  DB_Host            localhost          # 主机地址
  DB_Database        cacti              # 数据库
  DB_User            cactiuser          # 数据库用户
  DB_Pass            www.cnyunwei.com   # 数据库连接密码
  DB_Port            3306               # 数据库连接端口
  DB_PreG            1                  # 如果要配合0.8.7g之前的0.8.7的cacti工作,
                                        # 则配置成为1。
                                        # 因为我主机安装时cacti 0.8.7e 所以设置成了1。
                                        # 如果都是从g版本的源码安装,可以设置为0


安装spine这一步报错如下:

Cannot find MySQL header files 
解决办法:

#yum list | grep mysql  //查找mysql-devel包

#yum -y install mysql-devel.x86_64


./configure --with-mysql=/usr

# ./make
# ./make install




2,把原来cacti的documentroot直接打包scp到现在的documentroot下面.

   documentroot中放置的是cacti的html。也就是直接输入Ip就可以访问到cacti。

3,把原来cacti的数据库全部备份,scp到现在的cacti。红框内的都要dump。

   一共4个库:cacti,mysql,nconf和syslog。


  •    在cacti源主机执行mysqldump


   #mysqldump -uroot -p****** cacti>/tmp/cacti20140804.sql

   #mysqldump -uroot -p****** mysql>/tmp/mysql20140804.sql

   #mysqldump -uroot -p****** nconf>/tmp/nconf20140804.sql

   #mysqldump -uroot -p****** syslog>/tmp/syslog20140804.sql



  •      在cacti的目标机导入迁移过来的sql文件。


   先建好这4个数据库。cacti源主机的编码是默认编码latin1.所以目标机也直接默认编码。

   >create database cacti|mysql|nconf|syslog;//不用再设定编码方式。

   #mysql -uroot -p cacti</tmp/cacti20140804.sql

   #mysql -uroot -p mysql</tmp/mysql20140804.sql

   #mysql -uroot -p nconf</tmp/nconf20140804.sql

   #mysql -uroot -p syslog</tmp/syslog20140804.sql

  •      给cacti数据库创建一个超级用户,密码为www.cnyunwei.com //与原来的连接密码用户相同。

   grant all on cacti.* to cactiuser@localhost identified by ‘www.cnyunwei.com‘;

   flush privileges; 
   exit


  •    cacti设置登陆密码

   如果是admin 的密码丢失,id = 1;其他用户以此类推。
   #mysql -uroot -p122541
   mysql> show databases; 
   mysql> use cacti;
   mysql> show tables; 
   mysql> update user_auth set password=md5("www.cnyunwei.com") where id=‘1‘;
   mysql> flush privileges; 
   mysql> quit; 

4,配置snmpd文件

#### 
# First, map the community name "public" into a "security name" 

# sec.name source community 
com2sec notConfigUser 127.0.0.1 public 

#### 
# Second, map the security name into a group name: 

# groupName securityModel securityName 
group notConfigGroup v1 notConfigUser 
group notConfigGroup v2c notConfigUser 

#### 
# Third, create a view for us to let the group have rights to: 

# Make at least snmpwalk -v 1 localhost -c public system fast again. 
# name incl/excl subtree mask(optional) 
view systemview included .1.3.6.1.2.1.1 
view systemview included .1.3.6.1.2.1.25.1.1 

#### 
# Finally, grant the group read-only access to the systemview view. 

# group context sec.model sec.level prefix read write notif 
access notConfigGroup "" any noauth exact all none none 


## incl/excl subtree mask 
view all included .1 80 

syslocation Unknown (edit /etc/snmp/snmpd.conf) 
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)


dontLogTCPWrappersConnects yes 


5,设置每5分钟采集一次数据:

crontab -e

*/5 * * * * /usr/bin/php /var/www/html/poller.php &> /dev/null