Centos下安装cacti

服务器环境所需要安装的包

  • nginx
  • Php
  • Php-mysql
  • Php-snmp
  • Mysql
  • Perl-DBD-MySQL
  • Php-pdo
  • rrdtool
  • Net-snmp
  • Net-snmp-libs
  • Net-snmp-utils

1.下载cacti软件

wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz

2.使用yum安装所需的软件包

 

  1. yum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL 

 

3.在主监控机上安装rrdtool,rrdtool依赖的包过多,所以选择增加源,然后用yum安装

#增加源

 

  1. vi /etc/yum.repos.d/CentOS-Base.repo 

#在文件末尾增加以下部分

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1

 

  1. yum install rrdtool 

 

4.配置snmp

vi /etc/snmp/snmp.conf

  1. vi /etc/snmp/snmp.conf 

将下边这行中的defaultcom2secnotConfigUser default public#改为127.0.0.1com2secnotConfigUser 127.0.0.1 public

#将下边这行中的systemviewaccess notConfigGroup "" any noauth exact systemview none none改为allaccess notConfigGroup "" any noauth exact all none none

将下边这行的注释“#”号去掉#view all included .1 80#重启snmpd服务service snmpd restart

5.安装cacti

其实cacti无需安装的,只要解压后,在nginx设置好cacti的目录,就可以通过ie访问cacti了。

 

  1. mv cacti-0.8.7e /var/www/html/cacti 

6.在数据库中建库、授权、导入数据库结构

 

  1. mysql -p 
  2. mysql> create database cacti; 
  3. mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option; 
  4. mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option; 
  5. mysql> use cacti; 
  6. mysql> source /var/www/html/cacti/cacti.sql; 
  7.  
  8. #配置cacti以连接数据库 
  9. vi /var/www/html/cacti/include/config.php 
  10. #在config.php中,修改对应的mysql账户密码 

7.使用/usr/local/php/bin/php /var/www/html/cacti/poller.php --force 获取数据。

然后将/usr/local/php/bin/php /var/www/html/cacti/poller.php --force写入计划任务,/usr/local/php/bin/php /var/www/html/cacti/poller.php --force >/dev/full 2>&1

 

 这个时候,如果以上步骤都没有报错,那么就可以通过浏览器访问nginx里的域名,来访问cacti安装页。

 

按照提示,一步一步的安装下去,就可以安装好cacti了。

由于使用的是比较高版本的mysql和php,所以在安装过程中有可能出现以下几个问题:

1.由于mysql版本过高,所以mysql在导入cacti.sql的时候,会报错,提示不支持TYPE = MYISAM  所以需要将cacti.sql 里面的TYPE = MYISAM 都换成ENGINE=MyISAM 这样就可以正常的导入了。

2.在执行poller.php获取数据的时候,由于php版本问题,所以会报几个错误:

解决方法。

(1)在cmd.php和include/global_arrays.php 文件开头添加date_default_timezone_set('UTC'); 这行。

(2)如果报这个错误PHP Deprecated:  Function split() is deprecated in的话,需要将对应的php文件中的split替换成explode() 函数就而已了。

(3)如果报这个错误Deprecated: Function ereg_replace() is deprecated in 的话,需要将对应的php文件中的ereg_replace()函数前面添加一个@符号,屏蔽该函数。

(4)还有一个类似的错误,PHP Deprecated:  Assigning the return value of new by reference is deprecated in

是需要将对应的php中的&=修改为=来解决。

(5)最好还有一个比较古怪的问题,当上面步骤都安装完了以后,在graphs页面不显示图片,但是点进去。又可以看见图片,这个主要是rrdtool的版本不对造成的,解决方法是在console页面有一个setting,点进去后,修改rrdtool的版本就可以了。

 

通过以上方法如果还是报错的话,可以试着重新导入mysql,然后删除rra文件夹下的文件,重新获取一次。重启snmpd等方法看看能否解决。