环境: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