全部博文(6)
2011年(6)
分类: 系统运维
2011-03-08 22:18:48
一.Cacti的介绍
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具,是通过 snmpget来获取数据,使用 RRDtool绘画图形。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。
二.Cacti架构
三.Cacti工作原理
四.名词解释
1. RRDtools
使用RRDtool来存储和处理通过SNMP收集到的数据开始。这些数据很可能是某个网络或计算机接收或发送的字节数(比特数)。它也可以用来显示潮水的波浪、阳光射线、电力消耗、展会的参观人员、机场附近的噪音等级、你喜欢的度假区的温度、电冰箱的温度、以及任何你可以想象的东西。
你最需要一个度量数据,以及能够提供这些数据给RRDtool的感应器就可以了。RRDtool会让你创建数据库、存储数据、提取数据、创建用于在Web浏览器中显示的PNG格式的图像。这些PNG图像以来于你收集的数据,它可以是网络平均使用率、峰值。
2.RRD
Round Robin Database环状数据库
3.SNMP
snmp(Simple Network Management Protocal, 简单网络管理协议)在架构体系的监控子系统中将扮演重要角色。大体上,其基本原理是,在每一个被监控的主机或节点上 (如交换机)都运行了一个 agent,用来收集这个节点的所有相关的信息,同时监听 snmp 的 port,也就是 UDP 161,并从这个端口接收来自监控主机的指令(查询和设置)。
如果使用 RHEL5 的 net-snmp,那么被监控主机需要安装 net-snmp(包含了 snmpd 这个 agent),而监控端需要安装 net-snmp-utils。如果自行编译,需要 beecrypt(libbeecrypt)和 elf(libraryelf)的库。
每一个 agent 维护一个树形的数据库,称为 MID(Management Information Base, 管理信息库),其每一个节点称为 Object Identifier(OID),这在使用 net-snmp-utils 的工具时会用到。这些节点就表示了这台主机系统的设备如网卡的接口描述(eth0 等)、物理地址(MAC)、接口类型等,也可能是系统的信息,或者是需要监控的进程等...
五.应用场景极其优点
常见应用
服务器资源:CPU、内存、磁盘、进程、连接数等
服务器类型:WEB、Mail、FTP、数据库、中间件
网络接口:流量、转发速度、丢包率
设备运行状态:风扇、电源、温度
机房运行环境:电流、电压、温湿度
优点:
开源性;
界面 相对其它监控软件漂亮,能划出漂亮的数据图;
跨平台监控;
可扩展性
六.Cacti 安装与配置
1.安装依赖包:
yum -y install httpd php php-mysql php-snmp mysql mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby ruby-devel
2.设置开机启动snmpd,httpd,mysqld 服务
启动服务:service snmpd start
service httpd start
service mysqld start
开机自启:chkconfig snmpd on
chkconfig httpd on
chkconfig mysqld on
3.下载最新的RRDTools rpm包,进行安装
rrdtool-1.4.4-1.el5.wrl.i386
rrdtool-perl-1.4.4-1.el5.wrl.i386
rrdtool-ruby-1.4.4-1.el5.wrl.i386
使用yum安装:yum -y localinstall --nogpgcheck rrdtool-*.rpm
4.配置snmp
# vim /etc/snmp/snmp.conf
将com2secnotConfigUser default public
改为:com2secnotConfigUser 127.0.0.1 public (这是监控本地,被监控主机设置)
将access notConfigGroup “” any noauth exact systemview none none
改为:accessnotConfigGroup”" any noauth exact all none none
#view all included .1 80
将前面的 # 注释去掉。
重新启动 snmp 服务:service snmpd restart
5.安装cacti数据以及模板
配置mysql数据库
# mysql
Mysql > CREATE DATABASE cacti;
Mysql > grant all privileges on cacti.* to identified by ‘cacti’;
Mysql > grant all privileges on cacti.* to identified by ‘cacti’;
Mysql > grant all privileges on cacti.* to identified by ‘cacti’;
Mysql >flush privileges;
Mysql >quit
6.安装配置cacti
# tar xzvf cacti-0.8.7g.tar.gz
# mv cacti-0.8.7g/ /var/www/html/cacti
# mysql -ucacti -pcacti cacti < /var/www/html/cacti/cacti.sql
vim /var/www/html/cacti/include/config.php
修改成:
$database_type= “ mysql ” ;
$database_default = “cacti” ;
$database_hostname = “ localhost ” ;
$database_username = “cacti” ;
$database_password = “cacti” ;
7.添加用户并设置监控时间
useradd cacti
passwd cacti
cd /var/www/html/cacti/
chown -R cacti rra/ log/
# crontab -e
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
OK,配置成功,开始登录:
第一次登录用户名密码均为admin,登录之后需要强行修改密码:
登录界面:
七.安装插件
1.cacti常用插件安装
要安装别的插件前,先要安装cacti的一个patch--Plugin Architecture,才能支持插件
# tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
# cp -R cacti-plugin-arch/* /var/www/html/cacti/
cd /var/www/html/cacti/
mysql -ucacti -pcacti cacti
修改为$url_path = “/cacti/”;
2.# tar zxvf monitor-latest.tgz
# tar zxvf settings-latest.tgz
# tar zxvf thold-latest.tgz
# mv monitor-0.9/ /var/www/cacti/plugins/monitor
# mv settings-0.6/ /var/www/cacti/plugins/settings
# mv thold-0.41/ /var/www/cacti/plugins/thold
登陆安装启用对应的插件即可。
进入之后,进行模块的添加,效果图如下:
绘图界面:
PS:cact的i功能很强大,尤其是绘图功能,剩下功能模块慢慢摸索。