Cacti是一款使用PHP语言开打的性能与流量监测工具,监测的对象可以是linux或windows服务器,也可以是路由器,交换机等网络设备,主要基于SNMP(简单网络管理协议)搜集CPU占用,内存占用,运行进程数,磁盘空间,网卡流量等各种数据。
Cacti本身只是一个Web界面的管理软件,通过调用Net-SNMP工具来采集监测数据,并结合RRDtool(轮询数据库工具)记录数据并绘制图片。
推荐阅读:
CentOS 6下Cacti搭建文档
Cacti 的详细介绍:请点这里
Cacti 的下载地址:请点这里
注意:Cacti监测系统的搭建需要LAMP环境的支持,因此在搭建Cacti环境之前需要先将LAMP环境搭建好,还有本文的系统使用rhel6.0的系统,参考时注意自己系统的版本。
服务器端配置(主控端-Cacti)
1、构建支持Cacti的LAMP平台
在此使用系统光盘中的rpm格式的包,并使用yum进行安装,相关软件包如下。
[root@localhost /]#yum -y install httpd
[root@localhost /]#yum -y install mysql mysql-server mysql-connector*
[root@localhost /]#yum -y install php php-mysql php-pdo perl-DBD* unixODBC-*
上述分别是安装http mysql和php,也就是LAMP平台。
2、安装net-snmp-utils软件包
Cacti平台通过SNMP协议采集监测数据,因此需要用到snmpget,snmpwalk等SNMP数据采集工具,如下:使用yum一并安装。
[root@localhost /]#yum -y install net-snmp* lm_sensors
3、安装RRDtool软件包
[root@localhost /]#tar zxf rrdtool-1.4.5.tar.bz
[root@localhost /]#cd rrdtool-1.4.5
[root@localhost rrdtool-1.4.5]#./configure --prefix=/usr/local
[root@localhost rrdtool-1.4.5]#make && make install
4、部署Cacti源码包
将下载好的Cacti源码包释放至Web服务器的网页目录。
[root@localhost /]#tar zxf cacti-0.8.7g.tar.bz
[root@localhost /]#mv cacti-0.8.7g/ /var/www/html/cacti
5、添加一个程序用户,用来读取检测的数据。
[root@localhost /]#useradd runct
[root@localhost /]#cd /var/www/html/cacti
[root@localhost cacti]#chown -R root:root ./
[root@localhost cacti]#chown -R runct:runct rra/ log/
6、建立数据库,并导入表。
先创建用于Cacti检测平台的数据库,并授权一个数据库用户,然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表。如下图所示:
需要先启动mysqld服务,然后登陆mysq进行创建数据库操作。
[root@localhost cacti]#mysql -u root -p
Mysql>create database cactidb default character set utf8;
Mysql>grant all on cactidb.* to cactiuser@'localhost' identified by '123.qwe';
Mysql>exit
[root@localhost cacti]#mysql -u cactiuser -p cactidb < cacti.sql
7、调整Cacti配置文件
Cacti的配置文件位于源码目录中的include/文件下,名为config.php。要是Cacti系统能够正确访问并使用数据库,必须修改config.php文件,确保数据库连接参数真确无误。修改如下:
[root@localhost cacti]#vim /var/www/html/cacti/include/config.php
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "lcoalhost";
$database_username = "cactiuser";
$database_password = "123.qwe";
$database_port = "3306";
$database_ssl = false;
$url_path = "/";