cacti.net   英文官网

www.cactifans.org中文


Cacti是一套基于PHP,MySQL,SNMPRRDTool开发的网络流量监测图形分析工具。

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

cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp


rrdtoolcacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名ipsnmp团体名、端口号、模板信息等变量。

snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobin Archive),它能够存储的数据笔数在创建时就已经定义。

wKioL1NqUNqC3D0aAADrE66m4bY954.jpg

Cacti基本安装(pollertypecmd.php)

#yum install rrdtool mysql-server php -y
#yum install httpd php-mysql php-snmp php-xml net-snmp*  -y
#tar zxf cacti-0.8.8b.tar.gz -C /var/www/html


#vi /etc/php-ini

safe_mode = Off
 date.timezone = Asia/Shanghai
 file_uploads = On

要确保已安装net-snmp-utils net-snmp
在/var/www/html中创建php测试页,启动http看是否能够显示php网页


配置snmp

#vi /etc/snmp/snmpd.conf

com2sec notConfigUser default  public

Replace with:

com2sec local  localhost   public
com2sec mynetwork 192.168.0.0/24  public  //设置可以远程监控主机的网段
group notConfigGroup v1   notConfigUser
group notConfigGroup v2c   notConfigUser

Replace with:

group MyRWGroup v1   local
 group MyRWGroup v2c  local
 group MyRWGroup usm  local
 group MyROGroup v1   mynetwork
 group MyROGroup v2c  mynetwork
 group MyROGroup usm  mynetwork


view systemview included .1.3.6.1.2.1.
 view systemview included .1.3.6.1.2.1.25.1.1
 view all included .1        80


access notConfigGroup "" any noauth exact systemview none none

Replace with:

access MyROGroup ""  any  noauth exact all none none
 access MyRWGroup ""  any  noauth exact all all none


syslocation RHEL6.4
 syscontact Root <root@localhost>
 disk / 10000


#snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex        //test snmp server

IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
 IP-MIB::ipAdEntIfIndex.192.168.1.3 = INTEGER: 2          //这样显示则success


#/etc/init.d/snmpd start
#chkconfig snmpd on  //开机启动


#/etc/init.d/mysqld start
#mysql_secure_installation                        //添加mysql密码
#mysqladmin -pwestos create cacti                 //创建cacti库
#cd /var/www/html/cacti

#mysql -pwestos cacti < cacti.sql

>grant all on cacti.* to cacti@localhost identified by 'cacti';             //添加授权用户


#vi /var/www/html/cacti/include/config.php

$database_type = "mysql";
 $database_default = "cacti";   //数据库名
 $database_hostname = "localhost";
 $database_username = "cacti";   //授权用户名
 $database_password = "cacti";   //用户密码
 $database_port = "3306";
 $database_ssl = false;
$url_path = "/cacti/";
 $cacti_session_name = "Cacti";   //去掉注释


#useradd cacti
#chown -R cacti /var/www/html/cacti-0.8.8b/
切换至cacti用户:

#crontab -e
 */5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

//将标准输出和标准错误输出都收入空设备文件
//1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
//2>&1 :接着,标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

#crontab -l //查看

使用浏览器访问192.168.1.3/cacti,初始帐号密码均为admin,进入后强制改密码

wKiom1NqUqGxNvzKAACq_wPXRrM297.jpg

wKioL1NqUnfzGckDAACVL5fMyB8985.jpg



wKioL1NqUvjQnNcwAAMOeq3OQQQ444.jpg

若五分钟后看不到图像,注意检查gd-develnet-snmp-utils等包安装了没有


---------------------------------------------------------------------


cacti监控远程主机A


A上安装snmp服务

yum install net-snmp net-snmp-utils

vim /etc/snmp/snmpd.conf        //配置和监视主机相同,然后重启

snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex  //本机执行,显示则成功

snmpwalk -v 1 -c public 192.168.1.100 IP-MIB::ipAdEntIfIndex  //monitoring host执行,显示则成功

若出现如下错误:

wKiom1NqU6XwEj6pAABOlyT8DO8493.jpg

则需要注意iptablesselinuxsnmpd.conf文件配置

  com2sec mynetwork 192.168.1.0/24        public


web监控页面添加远程监控主机图形


1.添加主机设备

wKiom1NqVBGAmWHIAAQSY_7xyp4804.jpg

2.host创建Graphs

wKioL1NqVATwIJQLAALKRwBBkmU263.jpg

wKiom1NqVHLzEVN7AAPhj9_m03s372.jpg

wKioL1NqVEijAUDnAAEPHY-fUGY551.jpg


wKiom1NqVSWy57jdAAGWY-sBWmI667.jpg

wKioL1NqVP2xnU_yAAJjm0-HI38533.jpg


3.添加成功后在菜单graphs中就可以查看监控信息

wKioL1NqVTGQifj-AAM_df2vTI8988.jpg


---------------------------------------------------


Cacti_spine安装


spine高效的轮循工具

在效率方面,在大量采集数据时使用自带的cmd.php轮询器会比较慢,1分钟1次的采集频率可能无法完成轮询所有机器。为了优化,采用官方推荐的spine来高效轮询


tar zxf cacti-spine-0.8.8b.tar.gz

cd cacti-spine-0.8.8b


sh bootstrap       //所要支持的依赖包net-snmp-devel mysql-devel  openssl-devel  dos2unix  autoconf automake  binutils libtool gcc  cpp  glibc-headers  kernel-headers  glibc-devel


./configure        //default安装路径为/use/local/spine

make

make instal

cd /usr/loca/spine/etc

cp spine.conf.dist spine.conf

vi spine.conf
DB_Host         localhost
DB_Database     cacti
DB_User         cacti
DB_Pass         cacti
DB_Port         3306
DB_PreG         1              
           //Set it to 0 when using cacti087g. Else, setit to 1.



#/usr/local/spine/bin/spine      //此时在spine.conf目录下,执行此命令成功,显示如下

wKiom1NrR6uhSr28AAC1Y3VuQqY419.jpg

#cd  //推出当前目录,返回到家目录

#/usr/local/spine/bin/spine                   //此时再执行该命令,会显示如下错误,找不到配置文件,需要将spine.conf移到/etc目录中,再次执行则成功

10/12/2013 01:17:02 AM - SPINE: Poller[0] FATAL: Unable to readconfiguration file! (Spine init)


接下来配置cacti图形工具,

console->Setting->Paths设置spine的路径


wKioL1NrR7ji8NtSAANnm2sSErs880.jpg



console->Setting->Poller将默认轮循工具(cmd.php)设置为spine

wKiom1NrR-OB57EMAAE_-3qX3Gg694.jpg


现在就以spine为轮循工具监控系统信息了