Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。
虽然 MRTG 是一套非常好用的软件但是它毕竟是一套很旧的软件了,其作者在多年前已经开发出 RRDTool 代替该软件,现在已经发展的很成熟了,但由于 RRDTool 的指令非常复杂,对于使用者非常的麻烦,幸运的是有一套软件 Cacti 的发展就是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图
 
一:准备工作.
Linux平台:RHEL 5/CentOS 5
配置好yum源,大部分软件包都是用yum安装的。
vsftp最好也配置好,便于传文件。
 
1,配置LAMP环境。
[root@cacti ~]#yum -y install httpd mysql php mysql-server php-mysql
 
这是yum找到的所有安装包,安装完成LAMP环境也就搭建好了。
2,启动服务:
[root@cacti html]# /etc/init.d/httpd start
[root@cacti html]# /etc/init.d/mysqld start
 
3,设置服务开机自启动:
[root@cacti ~]# chkconfig httpd on
[root@cacti ~]# chkconfig mysqld on
 
>测试Apache环境:浏览器测试  http://服务器ip   能看到Apache默认页则http环境搭建好了。
>测试php环境:
[root@cacti~]#cd /var/www/html 
[root@cacti html]# vi test.php    #内容如下
<?
phpinfo();
?>
浏览器测试 http://服务器IP/test.php   ,如果能看到PHP信息则PHP环境搭建好了。
&gt;测试mysql: 打mysql 命令能看到mysql&gt;提示符就行了。
 
二:配置mysql cacti数据库。
mysql>create database cactidb;
Query OK, 1 row affected (0.00 sec)
mysql>grant all on cactidb.* to root;
Query OK, 0 rows affected (0.01 sec)
mysql>grant all on cactidb.* to root@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql>grant all on cactidb.* to cactiuser;
Query OK, 0 rows affected (0.00 sec)
mysql>grant all on cactidb.* to cactiuser@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql>set password for cactiuser@localhost=password('你的密码');
Query OK, 0 rows affected (0.00 sec)
mysql>exit
 
三:配置net-snmp 服务。
安装net-snmp包:
net-snmp.i386
net-snmp-devel.i386
net-snmp-perl.i386
net-snmp-utils.i386
[root@squid snmp]# yum install net-snmp.i386 net-snmp-devel.i386 net-snmp-perl.i386 net-snmp-utils.i386
 
 四:配置rrd-tool
[root@cacti tasks]# yum install libart_lgpl.i386 libart_lgpl-devel.i386
[root@cacti tasks]# rpm -ivh rrdtool-1.2.27-3.el5.i386.rpm
[root@cacti tasks]# rpm -ivh rrdtool-perl-1.2.27-3.el5.i386.rpm
 
五:配置Cacti
[root@cacti tasks]# tar -xzvf cacti-0.8.7b                                    解压cacti-0.8.7b ;
[root@cacti tasks]# mv cacti-0.8.7b /var/www/html/cacti         移动cacti文件夹到/var/www/html 目录并改名cacti;
[root@cacti cacti]# cd /var/www/html/cacti/                             进入cacti目录;
[root@cacti cacti]# mysql -u root -p cactidb<cacti.sql                  执行cacti.sql语句 并导入到cactidb数据库中;
编辑配置文件,具体根据实际情况:
[root@cacti cacti]#vi /var/www/cacti/include/config.php
$database_type = “mysql”;
$database_default = “cactidb”;
$database_hostname = “localhost”;
$database_username = “cactiuser”;
$database_password = “你的密码”;
 
为cactiuser用户加入数据更新,5分钟取一次。
[root@cacti cacti]#crontab –u cactiuser –e
*/5 * * * * php -f /var/www/html/cacti/poller.php >/dev/null 2>&1
 
 
进入cacti页面进行初始化安装。
http://服务器IP/cacti 
 
 
 
 
初始用户名admin 密码admin
初次要更改密码:
 
进入初始页面,没有添加模板之前cacti页面只有console 和graphs2个选项。
 
 
Monitor模板插件效果:
p_w_picpath
 
六:安装常用插件。
但在安装插件时,必须先安装cacti的一个patch--Plugin Architecture
安装cacti-plugin-arch:
[root@cacti tasks]#tar -zxvf cacti-plugin-arch.tar.gz
[root@cacti tasks]#cp -a cacti-plugin-arch /var/www/html/cacti/
[root@cacti tasks]#cd /var/www/html/cacti/
[root@cacti cacti]#cp cacti-plugin-0.8.7b-PA-v2.1.diff /var/www/html/cacti/
[root@cacti cacti]#mysql cactidb -u cactiuser -p < /var/www/cacti/cacti-plugin-arch/pa.sql
[root@cacti cacti]#patch -p1 -N < cacti-plugin-0.8.7b-PA-v2.1.diff
编辑include/global.php 文件:修改$config['url_path'] = '/cacti/'
 
[root@cacti cacti]#vi include/global.php
在 $plugins = array();  下面加上:
$plugins[] = 'thold'; 
$plugins[] = 'monitor'; //如果安装monitor的话
保存即可。
注意:有些插件默认不显示在页面上,需要在user managerment里将View Thresholds或View minitore选择上。
p_w_picpath
具体安装过程如下:
#wget http://cactiusers.org/downloads/cacti-plugin-arch.gzip
tar -zvxf cacti-plugin-arch.tar.gz
cd cacti-plugin-arch
cp cacti-plugin-0.8.7b-PA-v2.1.diff /var/www/html/cacti
cd /var/www/html/cacti
sudo patch -p1 -N &lt; cacti-plugin-0.8.7b-PA-v2.1.diff
#wget http://cactiusers.org/downloads/thold.tar.gz
tar -zvxf thold-0.3.9.tar.gz
chown -R root:root thold
mv thold /var/www/html/cacti/plugins/
#wget http://cactiusers.org/downloads/monitor.tar.gz
tar -zvxf monitor-0.8.2.tar.gz
chown -R root:root monitor
mv monitor /var/www/html/cacti/plugins/
#wget http://cactiusers.org/downloads/settings.tar.gz
tar -zvxf settings-0.5.tar.gz
chown -R root:root settings
mv settings /var/www/html/cacti/plugins/
#wget http://cactiusers.org/downloads/update.tar.gz
tar -zvxf update-0.4.tar.gz
chown -R root:root update
mv update /var/www/html/cacti/plugins/
 
vi /var/www/html/cacti/include/config.php
/* Default session name - Session name must contain alpha characters */
#$cacti_session_name = "Cacti";
#在此处增加下面内容
$plugins = array();
$plugins[] = 'thold';
$plugins[] = 'monitor';
$plugins[] = 'settings';
$plugins[] = 'update';
?>
 
 
亦可在include/global.php 文件中添加,作用是一样的。
 
 
 
七:注意事项
 
如果用户是用非root帐号进行管理,注意cacti目录下的rra,log,目录的所有者和权限。