Cacti(愿意仙人掌,也是次软件的名称)实在大型网络常见的性能监测软件,可提供对CPU负载、内存占用、运行进程数、磁盘空间、网卡流量等各种数据进行监测。

Cacti本身只是基于PHP语言编写的一套管理套件,需要使用Net-SNMP工具采集监测数据,并结合RRDtool(轮询数据库工具)记录数据及绘制图片,并通过web页面的形式展现给管理员用户。

原理图;

clip_p_w_picpath003

软件获取:

clip_p_w_picpath001 Cacti下载

p 官方站点:http://www.cacti.net

clip_p_w_picpath001[1] RRDTool

p Round Robin Database Tool,轮询数据库工具

p 官方站点:http://oss.oetiker.ch/rrdtool

需求:

Redhat 5.4或者CentOS5.5系统,采用文本安装模式最小化安装,构建YUM。

实现步骤:

一.配置被监测端(snmpd)

在被检测的linux主机中,安装好net-snmp软件包,并配置启动snmpd服务,以便允许Cacti系统采集数据。

1. 安装net-snmp软件包

net-snmp软件需要用到lm_sensors提供的硬件监测模块,安装时直接使用系统光盘中的rpm包文件,依次安装lm_sensors、net-snmp。(被监测的服务器需要安装snmpd服务,在监测服务器上还需要安装net-snmp-utils-5.3.2.2-7.el5.i386.rpm)

[root@www ~]# mount /dev/cdrom /media/mnt/

[root@www ~]# cd /media/mnt/Server/

[root@www Server]# rpm -ivh lm_sensors-2.10.7-4.el5.i386.rpm

[root@www Server]# rpm -ivh net-snmp-5.3.2.2-7.el5.i386.rpm

[root@www Server]# rpm -ivh net-snmp-utils-5.3.2.2-7.el5.i386.rpm

2. 配置及启动snmpd服务

修改/etc/snmp/snmpd.conf文件

修改内容:

把com2sec notConfigUser default public

access notConfigGroup "" any noauth exact systemview none none

#view all included .1 80

修改为

com2sec notConfigUser 192.168.1.111 public

access notConfigGroup "" any noauth exact all none none

view all included .1 80

3. 启动snmpd服务并设置开机启动

[root@www ~]# service snmpd start

[root@www ~]# chkconfig --level 35 snmpd on

二.配置监测服务端(Cacti)

Cacti监测服务端需要有Apache、Mysql、PHP网站平台的支持,且需要预先安装有gd、zlib等软件包。

1. 安装LAMP平台、启动服务并设置开机启动

[root@www ~]# yum install httpd* -y

[root@www ~]# yum install mysql* -y

[root@www ~]# yum install php* -y

[root@www ~]# service httpd start

[root@www ~]# service mysqld start

[root@www ~]# chkconfig --level 35 httpd on

[root@www ~]# chkconfig --level 35 mysqld on

2. 安装rrdtool软件包

rrdtool需要的软件包

libart_lgpl-2.3.17-4.i386

libpng-1.2.10-7.1.el5_3.2.i386

freetype-2.2.1-21.el5_3.i386 需预先安装

[root@www ~]# tar zxf rrdtool-1.2.27.tar.gz

[root@www ~]# cd rrdtool-1.2.27

[root@www rrdtool-1.2.27]# ./configure --prefix=/usr/local

[root@www rrdtool-1.2.27]# make

[root@www rrdtool-1.2.27]# make install

3. 安装配置Cacti服务器套件

安装Cacti文件包,解压至WEB服务器的网页目录,并添加用于读写监测数据的用户

[root@www ~]# cd /var/www/html/

[root@www html]# tar zxf cacti-0.8.7b-cn-utf8.tar.gz

[root@www html]# mv cacti-0.8.7b-cn-utf8 cacti

[root@www html]# useradd cactiuser

[root@www html]# chown -R cactiuser:cactiuser cacti/rra/ cacti/log/

设置监测数据库。

建立保存监测数据的数据库、表,设置好授权访问数据库的用户和密码

[root@www html]# service mysqld start

[root@www html]# mysql -u root -p

mysql> create database cactidb default character set utf8;

mysql> grant all on cactidb.* to cactiuser@localhost identified by '123';

mysql> exit

[root@www html]# mysql -u cactiuser -p cactidb < cacti/cacti.sql //导入数据表

4. 安装PA、Thold、Monitor插件扩展

[root@www ~]# cd /var/www/html/cacti

[root@www cacti]# tar zxf cacti-plugin-arch.tar.gz

[root@www cacti]# mysql -u cactiuser -p cactidb &lt; cacti-plugin-arch/pa.sql

[root@www cacti]# gunzip -c cacti-plugin-0.8.7b-PA-v2.1-cn-utf8.diff.gz > PA-utf.diff

[root@www cacti]# patch -p1 -N < PA-utf.diff

[root@www cacti]# cd plugins

[root@www plugins]# tar zxf settings-0.5.tar.gz

[root@www plugins]# tar zxf monitor-0.8.2.tar.gz

[root@www plugins]# tar zxf thold-0.3.9.tar.gz

[root@www plugins]# mysql -u cactiuser -p cactidb &lt; thold/thold.sql

[root@www plugins]# mysql -u cactiuser -p cactidb &lt; monitor/monitor.sql

5.调整Cacti配置文件

[root@www cacti]# vi include/config.php

&lt;?php

$database_type = "mysql";

$database_default = "cactidb";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "123";

$database_port = "3306";

$config['url_path'] = "/";

$plugins = array ();

$plugins[] = "settings";

$plugins[] = "thold";

$plugins[] = "monitor";

/* Default session name - Session name must contain alpha characters */

#$cacti_session_name = "Cacti";

?>

6. 调整httpd设置

[root@www ~]# vi /etc/httpd/conf/httpd.conf

修改http.conf文件,以便支持自动查找索引页index.php,并将utf-8作为默认的中文页面字符集。

Listen 192.168.1.111:80

DocumentRoot "/var/www/html/cacti"

<Directory "/var/www/html/cacti">

Options None

AllowOverride None

Order allow,deny

Allow from all

</Directory>

DirectoryIndex index.php

AddDefaultCharset UTF-8

7. 重启httpd服务,并查看其端口

[root@www ~]# service httpd restart

[root@www ~]# service mysqld restart

[root@www ~]# netstat -anpt | grep :80

8. 添加任务计划

[cactiuser@www ~]$ php /var/www/html/cacti/poller.php

[cactiuser@www ~]$ crontab –e

内容如下;

*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &&gt;/dev/null

[cactiuser@www ~]$ exit

[root@www ~]# service crond start

[root@www ~]# chkconfig --level 2345 crond on

clip_p_w_picpath005

9. 通过web页面初始化安装cacti

使用web浏览器访问Cacti服务器,第一次访问Cacti界面时,会自动跳转到Cacti的初始化安装向导界面。如图,点击下一步即可

clip_p_w_picpath007

clip_p_w_picpath008

clip_p_w_picpath010

clip_p_w_picpath012

clip_p_w_picpath014

clip_p_w_picpath016

为了在监测图像中正常现实中文,还需要设置RRDtool所使用的中文字体路径,此版本的路径应为“/usr/share/fonts/zh_TW/TrueType/bsmi00lp.ttf”,点击右下方的保存即可。

clip_p_w_picpath018

clip_p_w_picpath020

clip_p_w_picpath022