之前笔者写过使用MRTG搭建IDC网络流量监控平台,MRTG是一个非常老的软件,虽然非常好用,但是在功能方面还是有些欠缺,所以俺决定研究一下CACTI,下面一起与大家分享一下功能强大的CACTI Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmp来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能强大,界面友好。
Cacti是基于PHP语言开发的,在运行时需要PHP+MySQL的支持,首先我们来安装一个LAMP环境
操作系统:CentOS 5.4
一、安装Apache
#tar zxvf httpd-2.2.11.tar.gz
#cd httpd-2.2.11
#./configure --prefix=/usr/local/apache --enable-so
#make && make install
#/usr/local/apache/bin/apachectl start //启动Apache
#echo "/usr/local/apache/bin/apachectl start" >>/etc/rc.local //加入开机启动
二、安装MySQL
# groupadd mysql //创建MySQL组
# useradd -g mysql mysql //创建MySQL用户,并加入到MySQL组
# tar zxvf mysql-5.1.35-linux-i686-glibc23.tar.gz
# mv mysql-5.1.35-linux-i686-glibc23 /usr/local/
# cd /usr/local/
# ln -s mysql-5.1.35-linux-i686-glibc23 mysql
# cd mysql
# chown -R root:mysql /usr/local/mysql // 将/usr/local/mysql目录所属用户改为root,所属组改成mysql
# chown -R mysql:mysql /usr/local/mysql/data //将/usr/local/mysql/data目录宿主改为mysql
# ./scripts/mysql_install_db --user=mysql //初始化MySQL
#cp support-files/my-medium.cnf /etc/my.cnf //设置MySQL配置文件路径
#/usr/local/mysql/bin/mysqld_safe --user=mysql & //启动MySQL
#/usr/local/mysql/bin/mysqladmin -uroot password123456 //设置MySQL的管理员密码
#echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >>/etc/rc.local //将MySQL加入开机启动
三、安装PHP
在安装PHP之前要先安装zlib libpng jpeg freetype fontconfig gd,本次安装步骤略,安装路径分别为
/usr/local/zlib
/usr/local/libpng
/usr/local/jpeg
/usr/local/freetype
/usr/local/fontconfig
/usr/local/gd
要是为了方便的话也可以使用yum安装上面的几个库
安装PHP
#tar zxvf php-5.2.9.tar.gz
#cd php-5.2.9
#./configure --prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql--with-gd=/usr/local/gd --with-png-dir=/usr/local/libpng--with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype--enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --enable-xml--enable-mbstring --enable-sockets
#make && make install
# ln -s /usr/local/php/bin/* /usr/local/bin/
关于Apache+PHP+MySQL整合请参考http://luwenju.blog.51cto.com/620835/179663
四、安装rrdtool
Rrdtool需要一些库文件的支持,这些库文件的安装非常耽误时间,在此我们使用yum方式安装
#yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel intltool
#tar zxvf rrdtool-1.3.8.tar.gz
#cd rrdtool-1.3.8
# ./configure --prefix=/usr/local/rrdtool --disable-tcl
#make && make install
#ln -s /usr/local/rrdtool/bin/* /usr/local/bin/
五、安装net-snmp
# tar zxvf net-snmp-5.3.0.1.tar.gz
#cd net-snmp-5.3.0.1
# ./configure --prefix=/usr/local/net-snmp --enable-developer
# cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
#vi /usr/local/net-snmp/share/snmpd.conf修改可以访问SNMP的网段和community
# ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
#/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf //启动SNMP
# echo "/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf">>/etc/rc.loca //加入开机启动
六、安装cacti
#tar zxvf cacti-0.8.7e.tar.gz
#mv cacti-0.8.7e/* /usr/local/apache/htdocs/
#useradd cacti
#chown -R cacti /usr/local/apache/htdocs/rra
#chown -R cacti /usr/local/apache/htdocs
#chgrp -R cacti /usr/local/apache/htdocs/
登录MySQL,新建数据,并授权
#/usr/local/mysql/bin/mysql –uroot –p123456
Mysql>create database cacti;
Mysql>grant all on cacti.* to cacti@'localhost' identified by 'cacti';
Mysql>flush privileges;
导入cacti数据库
#cd /usr/local/apache/htdocs
#/usr/local/mysql/bin/mysql -uroot -p123456 cacti < cacti.sql
修改cacti安装配置文件
#vi /usr/local/apache/htdocs/include/config.php
http://192.168.1.10/install
cacti默认会在系统中找rrdtool、snmp的一些可程序文件路径,如果以上安装都正确的话会出现如下界面。注意:rrdtool、和net-snmp的版本要选择正确
cacti默认登录用户名为密码均为admin
登录后cacti会强制用户输入新的密码
生成图形文件
#/usr/local/bin/php /usr/local/apache/htdocs/poller.php
加入cron服务,让图片上的流量定时变动
#crontab –e
*/5 * * * * env LANG=C /usr/local/bin/php /usr/local/apache/htdocs/poller.php
注:如系统没有安装cron服务,请使用yum install vixie-cron安装
下图就是cacti登录进去后的界面
七、Cacti简单应用
下面我们来对公网上一台正在运行的交换机来做流量监控(被监控对象需要开启SNMP服务)
点击Devices--------然后点击add进行添加
Description:这个是我们自定义的监控对象的显示名
Hostname:这个应该填写监控对象的IP地址或者主机名,在此我们填写交换机的管理IP
Host Template:主机类型,我们选择Generic snmp-enabled Host (SNMP主机)
SNMP Community:监控对象的SNMP团体,根据实际填写,此次是public
SNMP Version:被监控对象的SNMP版本,现在一般使用第二个版本
点击“Create Graphs for this Host”意思是为这个设备创建图形
选择我们所要监控的端口,在此我们选择所有端口
点击“graphs”,然后选择刚才建立的监控对象 这个时候我们就可以看到监控界面了,如果看不到图片请执行/usr/local/bin/php/usr/local/apache/htdocs/poller.php,过5分钟我们就可以看到流量了,如果无流量或者流量图一直无变化请检查snmp是否正确和cron服务是否添加
转载于:https://blog.51cto.com/2484055/587305