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安装所需的软件包
- 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安装
#增加源
- 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
- yum install rrdtool
4.配置snmp
vi /etc/snmp/snmp.conf
- 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了。
- mv cacti-0.8.7e /var/www/html/cacti
6.在数据库中建库、授权、导入数据库结构
- mysql -p
- mysql> create database cacti;
- mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
- mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option;
- mysql> use cacti;
- mysql> source /var/www/html/cacti/cacti.sql;
- #配置cacti以连接数据库
- vi /var/www/html/cacti/include/config.php
- #在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等方法看看能否解决。
转载于:https://blog.51cto.com/wuxiaoxun/803889