首先搭建好LAMP环境(详情参考LAMP部署)
部署CACTI
安装rrdtool
# yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel pear pear-devel
#tar -zxvf rrdtool-1.4.7.tar.gz
#./configure --prefix=/usr/local/rrdtool/
#make && make install
安装snmp
# yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils
# chkconfig --level 3 snmpd on
# /etc/init.d/snmpd start
# vim /etc/snmp/snmpd.conf
修改如下
# sec.name source community
40 # sec.name source community
41 com2sec notConfigUser 127.0.0.1 public
61 # group context sec.model sec.level prefix read write notif
62 access notConfigGroup "" any noauth exact all none none
84 ## incl/excl subtree mask
85 view all included .1 80
# /etc/init.d/snmpd restart
# $ snmpwalk -v 2c -c public 127.0.0.1 if //测试
****客户端操作
# yum install net-snmp*
# vim /etc/snmp/snmpd.conf
修改如下
# sec.name source community
40 # sec.name source community
41 com2sec notConfigUser 10.10.8.241 public
将“default”改为你想哪台机器可以看到你的snmp信息
61 # group context sec.model sec.level prefix read write notif
62 access notConfigGroup "" any noauth exact all none none
84 ## incl/excl subtree mask
85 view all included .1 80
****************************************
安装cacti
解压cacti,移动到/data/www/htdocs下
#tar -zxvf cacti-0.8.7g.tar.gz
#mv cacti-0.8.7g /data/www/htdocs/cacti
#chown www:www /data/www/htdocs/cacti/ -R
******# vim /usr/local/apache/conf/httpd.conf //给cacti添加别名,可以不做
在最下增加如下
Alias /cacti/ "/data/www/htdocs/cacti/"
AllowOverride None
Options None
Order allow,deny
Allow from all
或者添加虚拟主机
*******
在mysql中创建cacti数据库,并授权给用户
mysql> create database cacti;
mysql> grant all on cacti.* to cactiuser@localhost identified by 'cactipwd';
mysql> flush privileges;
导入数据库
#cd /data/www/htdocs/cacti
# mysql -ucactiuser -pcactipwd cacti < cacti.sql
****如有报错,执行以下即可
**** #vim cacti.sql
**** :%s/TYPE=MyISAM/ENGINE=MyISAM/g
修改cacti配置脚本
# vim /data/www/htdocs/cacti/include/config.php
主要修改与mysql的连接
**我这里修改了一个地方$database_password = "cactiuser";改成**$database_password = "cactipwd";
先做软连接
#ln -s /usr/local/rrdtool/bin/rrdtool /usr/local/bin/
#ln -s /usr/local/php/bin/php /usr/bin/
# vim /usr/local/php/etc/php.ini
添加timezone
更改php时区
编辑php.ini,将timezone改成PRC
具体操作如下:
将 ;date.timezone = 取消注释改成date.timezone = PRC
或则# vim /data/www/htdocs/cacti/include/config.php 在里面添加如下该行
date_default_timezone_set("Asia/Shanghai");
一定要重启下apache,否则时区不生效
# /etc/init.d/httpd restart
http://IP/cacti/install
这里基本不会报错了,如果有文件没找到,做软链接即可解决
点击next->next->finish,出现登陆界面,默认账号口令都是admin
首次登录会强制性要求重新设置密码
添加计划任务,使cacti每5分钟获得一次数据(当然也可以根据需要来设置时间)
#crontab –e
*/5 * * * * /usr/bin/php /data/www/htdocs/cacti/poller.php 2>&1
注:还有一个最重要的,就是不装spine不出图,所以下面要装spine
#tar -zxvf cacti-spine-0.8.7g.tar.gz
注:进入解压后路径执行如下
#aclocal
#libtoolize --force
#autoconf
#autoheader
#automake
#./configure --prefix=/usr/local/spine --with-mysql=/usr/local/mysql
#make && make install
#cd /usr/local/spine/etc/
#cp spine.conf.dist spine.conf
#vim spine.conf
根据自己情况修改,(我这里修改了password)
#ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
# cd /usr/local/spine/bin
#./spine
SPINE: Using spine config file [../etc/spine.conf]
SPINE: Version 0.8.8f starting
SPINE: Time: 0.1819 s, Threads: 5, Hosts: 2
测试命令:
# /usr/bin/php -q /data/www/htdocs/cacti/poller.php --force --debug //测试生成rra文件情况
# snmpwalk -v 2c -c public 127.0.0.1 if //测试snmp
Cacti插件安装
1. cacti-plugin
#tar -zxvf cacti-plugin-0.8.7h-PA-v3.0.tar.gz
# cp cacti-plugin-0.8.7h-PA-v3.0.diff /data/www/htdocs/cacti/
# cp pa.sql /data/www/htdocs/cacti/
# cd /data/www/htdocs/cacti
#patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff //打补丁
#vim pa.sql //%s/TYPE=MyISAM/ENGINE=MyISAM/g
#mysql -ucactiuser -pcactipwd cacti < pa.sql
#vim /data/www/htdocs/cacti/include/global.php //$config['url_path'] = '/cacti/';
2.安装setting
#tar -zxvf settings-v0.71-1.tgz
#mv settings /data/www/htdocs/cacti/plugins/
3.安装monitor
# tar -zxvf monitor-v1.3-1.tgz
# mv monitor /data/www/htdocs/cacti/plugins/
# mysql -ucactiuser -pcactipwd cacti < monitor.sql
# vim /data/www/htdocs/cacti/include/config.php
$plugins = array();
$plugins[] = 'settings'; //添加setting插件
$plugins []= 'monitor'; //添加monitor插件
继续点击启动,方法同setting
报错解决方法(部分有效):
1.导入cacti.sql时提示:TYPE=MyISAM不对
将cacti.sql里面所有的TYPE=MyISAM 替换成 ENGINE=MyISAM
mysql5.5取消了type 只能用engine!!否则会出现以下错误:
ERROR 1064 (42000) at line 5: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 6
命令为:
vi /var/www/html/cacti/cacti.sql
然后输入:
:1,%s/TYPE=MyISAM/ENGINE=MyISAM/g
或者 :1,%s/TYPE=MyISAM/ENGINE=MyISAM/gc 多了个提示对话框
最后重启:/usr/local/apache2/bin/apachectl restart
2.session_start(): Failed to initialize storage module
解决方法1:
#vim php.ini
将如下0修改成1
session.auto_start = 1
解决方法2:
在报错的文件里的session start();之前加入如下代码:ini_set(‘session.save_handler’, ‘files’);
解决方法3:
在php.ini文件里,显式指定session的save_path(比如 /temp)然后重启web服务。
解决方法4:
在session_start前面增加上面的内容
if(!is_dir(’./tmp/’))mkdir (’./tmp/’, 0700);
session_save_path(’./tmp/’);
session_start();
解决方法5:
将/tmp目录所属组修改www
3.进入ip/cacti时区错误
解决方法1:
date_default_timezone_set('Asia/shanghai');
就加在
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
date_default_timezone_set('Asia/shanghai'); //手动添加
重启生效apache /usr/local/apache2/bin/apachectl restar
解决方法2:
修改/etc/php.ini:
找到date.timezone,去掉前面的注释并
改为
date.timezone = PRC
或
date.timezone = Asia/Shanghai
4.打补丁之后,图片无法正常显示
# vim /data/www/cacti/include/global.php
if (! isset($url_path)) {
$url_path = "";
}
$config['url_path'] = '/cacti/';
define('URL_PATH', $url_path);
5.安装插件后,日志中提示数据库错误
修复 //修复时会提示缺少libmysqlclient.so.15,如果没有可以cp过来
# mysqlcheck --repair cacti -u root –p //修复索引
参考:http://www.linuxidc.com/Linux/2013-01/78076p5.htm