Cacti是基于PHP/MySQL的开源网络监控及绘图工具,它通过SNMP获取数据并使用RRDTool存储数据,然后在需要时利用RRDTool的绘图功能绘图并通过PHP展示。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
nmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
RRDTool是一个高性能的数据记录及绘图工具,主要用于处理时间序列数据,如CPU负载、服务器负载、网络带宽等。它能管理记录和分析通过SNMP从其它任意数据源获取到的时间序列数据,并将它们以图形的方式展示。
RRDTool记录数据的文件名后缀通常为.rrd,而且其能够存储的数据的总量不会改变,因为当文件写满后,新生成的数据会覆盖当前文件中最早生存的数据。
rrdtool绘画图形而且完全可以不需要了解rrdtool复杂的命令参数,它提供了非常强大的数据和用户管理界面,可以指定每一个用户能查看树状结构以及主机的任何一张图,还可以与LDAP结合进行用户认证,同时也能添加自定义的监控模版,监控windows操作系统,功能强大,界面友好
acti的架构及工作流程
Cacti的架构
Cacti的工作流程
rrdtool工具安装:
rrdtool前面在安装nagios--pnp时已经安装:
安装第三方yum源
[root@localhost src]# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm [root@localhost src]# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm |
安装rrdtool:
[root@localhost src]# yum -y install rrdtool |
安装依赖包
在主监控机上安装apache+php+gd的web环境
#yum -y install php php-devel php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL
本机上同时装了nagios,php与mysql相关的软件包之前已经安装过
[root@localhost src]# yum -y install php-devel php-snmp net-snmp net-snmp-libs net-snmp-utils |
配置snmp
[root@localhost snmp]# vim snmpd.conf |
做如下修改:
将: com2sec notConfigUser default public
改为:com2sec notConfigUser 127.0.0.1public
将: access notConfigGroup "" any noauth exact systemview none none
改为:access notConfigGroup "" any noauth exact all none none
将: #view all included .1 80
改为:view all included .1 80
启动snmpd服务
安装cacti
[root@localhost src]# cd /usr/local/src/ [root@localhost src]# wget http://www.cacti.net/downloads/cacti-0.8.7h.tar.gz [root@localhost src]# mv cacti-0.8.7h /usr/local/cacti |
在数据库中建库、授权、导入数据库结构
mysql> create database cacti;
mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti'with grant option;
mysql> grant all privileges on cacti.* to [email protected] identified by 'cacti'with grant option;
mysql> use cacti;
mysql> source /usr/local/cacti/cacti.sql;
Tips:注意导入cacti.sql时该文件的路径
配置cacti以连接数据库
[root@localhost src]# vim /usr/local/cacti/include/config.php |
[root@localhost src]# vim /usr/local/cacti/include/global.php |
在apache中添加配置cacti的虚拟主机配置文件
[root@localhost src]# vim /etc/httpd/conf.d/cacti.conf |
添加如下内容:
Alias /cacti "/usr/local/cacti"
<Directory "/usr/local//cacti ">
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
[root@localhost src]# service httpd restart |
浏览器进行cacti初使配置
用浏览器打开 http://ServerIP/cacti ;安装cacti,一路默认即可
默认用户名和密码都是admin,首次输入密码会提示修改密码
先手工生成图表
[root@localhost src]# php /usr/local/cacti/poller.php |
创建任务计划
[root@localhost src]# crontab -e |
添加如下:
*/1 * * * * php /usr/local/cacti/poller.php > /dev/null 2>&1
cacti常用插件安装
先安装cacti扩展模块
下载地址:http://www.cacti.net/downloads/pia/
[root@localhost src]# pwd /usr/local/src [root@localhost src]# wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7h-PA-v3.0.tar.gz [root@localhost src]# tar zxvf cacti-plugin-0.8.7h-PA-v3.0.tar.gz [root@localhost src]# alias cp=cp [root@localhost src]# cp -R cacti-plugin-arch/* /usr/local/cacti/ [root@localhost src]# cd /usr/local/cacti/ [root@localhost cacti]# mysql -ucacti -pcacti cacti < pa.sql [root@localhost cacti]# patch -p1 -N < cacti-plugin-0.8.7h-PA-v3.0.diff |
Tips:为cacti配置文件打补丁的时候有可能它将 include/config.php.dist给打补丁了!做如下操作,在文末添加语句:$url_path = "/cacti/"
[root@localhost cacti]# vim /usr/local/cacti/include/config.php |
打开插件管理功能:
打开“Console----> User Management----> admin”然后在“Realm Permissions”选项卡中勾选“Plugin Management”,然后点击Save 进行保存!
此时我们会在控制台---> Configuration 选项卡下多了一个Plugin Management 选项卡,到此cacti 架构扩展完成!!
settings 安装
下载地址:http://docs.cacti.net/plugin:settings
[root@localhost cacti]# cd /usr/local/src/ [root@localhost src]# tar zxvf settings-v0.71-1.tgz [root@localhost src]# mv settings /usr/local/cacti/plugins |
web控制台:点击Console---> Plugin Management,我们看到多了一个settings 插件,然后点击蓝色向下箭头,再点击向右蓝色箭头启用!!再点击 Console ---> Settings 后我们会发现多了一个Mail/DNS 选项卡!
在 cacti 配置文件中添加settings 插件:
[root@localhost src]# vim /usr/local/cacti/include/config.php |
添加如下语句:$plugins[] = 'settings';
Monitor 安装
下载地址:http://docs.cacti.net/plugin:monitor
[root@localhost src]# tar zxvf monitor-v1.3-1.tgz [root@localhost src]# mv monitor /usr/local/cacti/plugins [root@localhost monitor]# cd /usr/local/cacti/plugins/monitor/ [root@localhost monitor]# mysql -ucacti -pcacti cacti < monitor.sql |
修改 cacti 配置文件,添加monitor 插件
[root@localhost monitor]# vim /usr/local/cacti/include/config.php |
添加如下语句:$plugins[] = 'monitor';
启用插件方法通上
thold 安装
下载地址:http://docs.cacti.net/plugin:thold
[root@localhost src]# tar zxvf thold-v0.5.0.tgz [root@localhost src]# mv thold /usr/local/cacti/plugins |
启用插件方法通上,回到控制台,我们会发现多了一个“thold”选项;打开“Console --->Settings”,发现多了一个“thresholds”选项卡
Weathermap 安装
下载地址:http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
[root@localhost src]# unzip php-weathermap-0.97a.zip [root@localhost src]# mv weathermap /usr/local/cacti/plugins/ [root@localhost src]# chmod -R 777 /usr/local/cacti/plugins/weathermap |
启用插件方法通上,回到控制台,我们会发现多了一个“weathermap”选项!
Tips:其它大部分插件可以到这个网站下载:http://docs.cacti.net/plugins
设置cacti用到的命令路径
Console ---> Settings --->Paths 修改相应命令的位置
Console>Settings>General 修改为所安装版本
Console>Settings>Poller 修改为所使用的类型,如果安装了spine轮询插件需要再次此修改为spine