cacti.net 英文官网
中文
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti是通过 snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件Cacti 的发展是基于让RRDTool使用者更方便使用该软件,除了基本的Snmp流量跟系统资讯监控外,Cacti也可外挂 Scripts及加上 Templates来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和
rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobin Archive),它能够存储的数据笔数在创建时就已经定义。
Cacti基本安装(pollertype为cmd.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 publiccom2sec mynetwork 192.168.0.0/24 public //设置可以远程监控主机的网段
group notConfigGroup v1 notConfigUsergroup 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#snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex //test snmp serverdisk / 10000
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,进入后强制改密码若五分钟后看不到图像,注意检查gd-devel、net-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执行,显示则成功
若出现如下错误:
则需要注意iptables、selinux和snmpd.conf文件配置
com2sec mynetwork 192.168.1.0/24 public
web监控页面添加远程监控主机图形
1.添加主机设备
2.为host创建Graphs
3.添加成功后在菜单graphs中就可以查看监控信息
---------------------------------------------------
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.confDB_Host localhostDB_Database cactiDB_User cactiDB_Pass cactiDB_Port 3306DB_PreG 1 //Set it to 0 when using cacti087g. Else, setit to 1.
#/usr/local/spine/bin/spine //此时在spine.conf目录下,执行此命令成功,显示如下
#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的路径
console->Setting->Poller将默认轮循工具(cmd.php)设置为spine
现在就以spine为轮循工具监控系统信息了