1、cacti概述

     Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。
     Cacti是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图

 
二、Cacti的架构及工作流程
cacti架构
 
cacti流程
 
   Cacti 程序必须依靠LAMP 架构运行的一套软件,这里我就不写安装lamp的详细步骤了。具体的可以参看http://huangkun.blog.51cto.com/190289/35571黄老师写的LAMP安装,这里写的很详细。(博客里面还有很多都写的很详细)。推荐是源码包安装
 
3、环境
 
Linux AS 5  ip192.168.2.154
 
所需软件
软件名
作用
下载地址
Rrdtoot
绘图
http://oss.oetiker.ch/rrdtool/
Net-snmp
定时采集数据,存储数据
http://www.net-snmp.org/ <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Cacti
主程序
 
软件下载完后,通过ssh或者其他的软件上传到服务器上。
 
4、安装

1、rrdtool 软件的安装
 
#tar -zxvf rrdtool-1.2.26.tar.gz
#cd rrdtool-1.2.26
#/configure --prefix=/usr/local/rrdtool
#mae&&make install
#完成后建立符号连接 ,下面安装cacti时需要里面的命令
#ln –s /usr/local/rrdtool/bin/* /usr/local/bin/
 
2.安装net-snmp

RedHat默认安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要编译安装NET-SNMP。
# tar zxvf net-snmp-5.3.3.tar.gz
#cd net-snmp-5.3.3
#./configure --prefix=/usr/local/snmp --enable-developer
#make
#make install

#完成后建立符号连接 ,下面安装cacti时需要里面的命令
# ln –s /usr/local/snmp/bin/* /usr/local/bin/
#cp EXAMPLE.conf  /usr/local/net-snmp/share/snmp/snmpd.conf    #cp 配置文件到相应的目录这里需要修改snmpd.conf中 COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等
#       sec.name  source          community
com2sec local     localhost       COMMUNITY
com2sec mynetwork NETWORK/24      COMMUNITY

#/usr/local/snmp/sbin/snmpd    #启动SNMP服务
#ps -ef|grep snmp             #查看服务是否启动
#echo "/usr/local/snmp/sbin/snmpd" >> /etc/rc.local

#在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务。
 
3.安装cacti主程序

a、首先先对mysql 做更改
 
# mysql -u root –p    #进入mysql
Enter password:#输入密码
mysql> create database cacti;   #创建cacti所用的数据库
Query OK, 1 row affected (0.05 sec)
mysql> grant all on cacti.* to cacti@localhost identified by '123456';  #创建cacti连接mysql 所用的用户名;
Query OK, 0 rows affected (0.09 sec)
mysql> flush privileges;        #刷新权限
Query OK, 0 rows affected (0.00 sec)
mysql> exit         #退出
mysql到这里已经更改完成
b、安装cacti
  
#tar -zxvf cacti-0.8.7e.tar.gz
#cp -r cacti-0.8.7e /www/cacti       
#cp cacti程序到apache目录下, 把cacti目录下自带的一个sql文件导入到刚刚建立的cacti数据库中,创建所用的表以及所用数据
#cd /www/cacti/
# mysql -u root -p cacti < cacti.sql 
修改cacti的配置文件,连接数据库。需要更改的地方贴了出来
#vi /www/cacti/include/config.php
$database_type = "mysql";                 #数据库类型
$database_default = "cacti";                #数据库名
$database_hostname = "localhost";      #主机名
$database_username = "cacti";            #数据库用户名
$database_password = "123456";       #密码
 
添加cacti用户,用于运行poller.php文件,首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限
# useradd cacti
# chown –R cacti /www/cacti/rra   #将rra目录的所有权给cacti用户
# chgrp –R cacti /www/cacti     #修改cacti目录所属组
为cacti用户添加cron任务
# su – cacti
# crontab –e
*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1

 
保存退出
5、完成cacti的安装

在浏览器输入ip地址 http://192.168.2.154 访问 默认的用户名为admin、密码问admin 第一次登录提示让更改密码在浏览器中输入地址之后会看到一些协议,点击“next”继续,让选择全新安装或者是更新我以前没有在此服务器上安装过,这里选择全新安装,点击“next”继续,
 
这里是cacti所用到的命令路径,如果没有做就是红色显示,点击“finish”完成出现下图输入用户名admin 密码admin 继续

 
点击 login 登录之后会提示更改密码,输入新的密码确认确认之后进入主界面如下图所示
 
 
到这里就安装完成了。可以根据自己需要添加需要监控服务。