在Linux系统下监控系统性能工具很多,Cacti是在大型网络中较常见的性能监测软件,可以对CPU负载、内存占用、运行进程数、磁盘空间、网卡流量等各种数据信息进行监控。
Cacti是基于PHP语言编写的一个管理套件,需要使用Net-SNMP工具采集监测数据,并结合RRDtool(轮询数据库工具)记录数据及绘制图片,然后通过Web页面的形式展现给管理员用户。接下来开始构建Cacti监测系统:
Cacti和RRDtool工具可以分别从以下两个站点下载:
 
一.配置监测服务端(192.168.0.66)
配置Cacti监测服务端需要AMP(Apache、Mysql、PHP)平台的支持,另外也需要安装gd、zlib等软件包。AMP平台可以采用编译安装源码包的方式构建,也可以采用RPM软件包来构建,为节约时间,本文采用安装RHEL5系统光盘自带RPM包方式来构建AMP平台。
1.分别安装构建APM平台需要的RPM软件包:(安装过程略)
httpd-2.2.3-31.el5
mysql-5.0.77-3.el5、mysql-connector-odbc-3.51.26r1127-1.el5、mysql-server-5.0.77-3.el5
php-common-5.1.6-23.2.el5_3、php-pdo-5.1.6-23.2.el5_3、php-5.1.6-23.2.el5_3
php-mysql-5.1.6-23.2.el5_3
安装完成后分别启动各服务。
2.使用rpm-qa |grep gd、rpm -qa |grep zlib命令查看软件包是否安装,如未安装就挂载RHEL5光盘进行安装。
3.安装net-snmp-utils软件包:
分别安装lm_sensors、net-snmp、net-snmp-utils三个软件包:
[root@linux5234 ~]#rpm -ivh lm_sensors
[root@linux5234 ~]#rpm -ivh net-snmp
[root@linux5234 ~]#rpm -ivh net-snmp-utils
4.安装rrdtool软件包:
[root@linux5234 ~]#tar zxf rrdtool-1.2.27.tar.gz
[root@linux5234 ~]#cd rrdtool-1.2.27
[root@linux5234 ~]#.configure --prefix=/usr/local
[root@linux5234 ~]#make && make install
5.安装配置Cacti服务器套件:(使用 tar zxf /media/6/cacti-0.8.7b-cn-utf8.tar.gz    
中文软件包)
    1>安装Cacti软件包:先挂载安装软件包,然后解压至Web服务器网页目录,同时添加用于读写监测数据的用户cacti。
[root@linux5234 ~]# mount /dev/cdrom /media/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@linux5234 ~]# cd /media/6/
[root@linux5234 6]# cd /var/www/html/
[root@linux5234 html]# tar zxf /media/6/cacti-0.8.7b-cn-utf8.tar.gz    
[root@linux5234 html]# mv cacti-0.8.7b-cn-utf8 cacti
[root@linux5234 html]# useradd cacti
[root@linux5234 html]# chown -R cacti.cacti cacti/rra/ cacti/log/
    2>设置监测数据库:建立保存监测数据的数据库、表,设置好授权访问数据库的用户和密码。
[root@linux5234 html]# mysql -u root
Welcome to the MySQL monitor.    Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database cactidb default character set utf8;  //创建数据库并设置默认字符集
Query OK, 1 row affected (0.00 sec)

mysql> grant all on cactidb.* to cacti@localhost identified by 'pwd@123';
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@linux5234 html]# mysql -u cacti -p cactidb < cacti/cacti.sql    //导入数据表
Enter password:  //输入密码后导入成功
     3>修改Cacti配置文件:
[root@linux5234 html]# cd cacti/
[root@linux5234 cacti]# vi include/config.php   //需要修改的内容如下 
$database_type = "mysql";
$database_default = "cactidb";   //要访问的数据库名
$database_hostname = "localhost";  //数据库服务器的地址
$database_username = "cacti";   //授权访问数据库的用户
$database_password = pwd@123;  //授权密码
$database_port = "3306";       //mysql数据库服务的端口
$config['url_path'] = "/";    //指定Cacti目录相对于网站根目录的位置
6.修改httpd.conf配置文件,使其支持php网页,并将utf-8作为默认的中文页面字符集:
[root@linux5234 cacti]# vi /etc/httpd/conf/httpd.conf    
DocumentRoot "/var/www/html/cacti"  //设置网站文件根目录
<Directory "/var/www/html/cacti">   //设置目录权限
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
</Directory>
DirectoryIndex index.php index.html    //设置默认的索引页
AddDefaultCharset UTF-8    //设置网页默认的字符集
重新启动httpd服务:service httpd restart
 
二.配置被监测的Linux服务器(192.168.0.77):
1.安装net-snmp软件包:
[root@localhost ~]# mount /dev/cdrom /media/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# cd /media/Server/
[root@localhost Server]# rpm -ivh lm_sensors-2.10.7-4.el5.i386.rpm    
[root@localhost Server]# rpm -ivh net-snmp-5.3.2.2-7.el5.i386.rpm    
2.修改snmpd服务配置文件及启动服务:
[root@localhost ~]# vi /etc/snmp/snmpd.conf
41行
com2sec notConfigUser    192.168.0.66             public   //192.168.0.66为Cacti监测服务器的IP地址
62行
access    notConfigGroup ""            any             noauth        exact    all none none    //将SystemViem 修改为all或read,提供访问权限
85行
view all     included    .1                80  //去掉此行前面的#号
启动服务并设置服务自启动:
[root@localhost ~]# service snmpd start
[root@localhost ~]# chkconfig --level 35 snmpd on
 
三.初始化Cacti系统
在客户端Web浏览器访问Cacti服务器(192.168.0.66),第一次访问cacti界面,页面将跳转至Cacti的初始化安装向导界面:
在RHEL5下构建Cacti监测系统_监控
点击“下一步”即可:
在RHEL5下构建Cacti监测系统_休闲_02
选择“全新安装”,点击“下一步”即可。
在RHEL5下构建Cacti监测系统_休闲_03
设置各种工具命令的路径,如果没有找到,需要手动修改。此时需要注意,如果是编译安装的AMP平台,有些路径需要作对应改变。
 
四.使用Cacti监测系统:
1.登录管理平台,完成Cacti初始化安装之后,直接进入web登录界面,如下图所示,输入默认的管理员用户名和密码(admin/admin):
在RHEL5下构建Cacti监测系统_性能_04
2.首次登录强制要求更改密码,更改完成后保存就可以进入管理界面了:
在RHEL5下构建Cacti监测系统_性能_05
 
在RHEL5下构建Cacti监测系统_休闲_06
3.设置RRDtool工具的版本和字体的路径:在Cacti的控制台界面中,点击左侧栏的“设置”,打开Cacti的系统设置界面,确认“常规”标签页中的“RRDtool应用程序版本”设置为“RRDtool1.2.x”。
在RHEL5下构建Cacti监测系统_性能_07
找到“路径”选项卡中的“RRDtool默认字体路径”,将字体路径设置为“/usr/share/fonts/zh_TW/TrueType/bsmi00lp.ttf”:
在RHEL5下构建Cacti监测系统_性能_08
4.添加被监测的设备或主机:(本实验添加一台Linux ftp服务器为监控对象)
连接主机,在Cacti控制台中,点击左侧栏“管理”下的“设备”,然后单击上方的“添加”按钮,进入添加新设备的页面:
本实验添加的设备为“Linux Vsftp服务器”,设备IP地址为“192.168.0.77",设备模板选择“ucd/net SNMP设备”,“SNMP版本”选择“版本1”,然后击“创建”完成添加并进行初次连接:
在RHEL5下构建Cacti监测系统_Linux_09
指定监测项目:成功连接被监测的主机(192.168.0.77)后,可以看到“保存成功”的提示信息,可以在页面下方看到默认监测的项目,另外可以根据实际需要自行添加需要图像模板和数据查询名称:
在RHEL5下构建Cacti监测系统_Cacti_10
然后保存设置:
在RHEL5下构建Cacti监测系统_Cacti_11
5.生成监控图像:
创建图像,点击Cacti控制台左侧栏的“新建图像”,进入图像创建页面,在“设备”下拉菜单处指定需要绘制图像的主机,勾选需要创建图像的监测项目上,最后点击页面右下方的“创建”,在出现的页面中再次单击“创建”按钮即可完成:
在RHEL5下构建Cacti监测系统_Linux_12
添加图像至监测树:
单击Cacti控制台左侧栏“管理”下的“图像树”,在右侧点击“默认”,可以对默认的监测树进行管理,点击右侧的“添加”,可以为默认监测树添加“树枝”节点项目,有“设备”、“图像”、“标头”三类,本实验添加“设备”节点,最后单周“创建”:
在RHEL5下构建Cacti监测系统_Linux_13
6.在Cacti监控服务端执行首次初始化并添加计划任务,定期采集监控数据:
[root@linux5234 cacti]# su - cacti
[cacti@linux5234 ~]$ php /var/www/html/cacti/poller.php   //执行首次初化必须使用cacti用户,出现以下数据,表示初始化成功,可以查看到监控图像,如果没有以下数据,将不会看到正常的监控图像 
OK u:0.00 s:0.14 r:2.82
OK u:0.00 s:0.14 r:2.83
OK u:0.00 s:0.14 r:2.83
OK u:0.00 s:0.14 r:2.83
OK u:0.00 s:0.15 r:2.85
OK u:0.00 s:0.15 r:2.85
OK u:0.00 s:0.18 r:2.89
OK u:0.00 s:0.18 r:2.89
OK u:0.00 s:0.18 r:4.85
OK u:0.00 s:0.18 r:4.85
OK u:0.00 s:0.18 r:5.93
OK u:0.00 s:0.18 r:5.93
OK u:0.00 s:0.18 r:5.94
OK u:0.00 s:0.18 r:5.94
OK u:0.00 s:0.18 r:5.99
OK u:0.00 s:0.18 r:5.99
OK u:0.00 s:0.18 r:5.99
OK u:0.00 s:0.18 r:5.99
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:6.00
OK u:0.00 s:0.18 r:7.04
OK u:0.00 s:0.19 r:7.04
OK u:0.00 s:0.19 r:7.04
OK u:0.00 s:0.19 r:7.04
OK u:0.00 s:0.19 r:7.04
OK u:0.00 s:0.19 r:7.05
10/21/2010 11:42:31 AM - SYSTEM STATS: Time:9.2262 Method:cmd.php Processes:1 Threads:N/A Hosts:3 HostsPerProcess:3 DataSources:25 RRDsProcessed:21
OK u:0.00 s:0.19 r:8.11
OK u:0.00 s:0.19 r:8.11
OK u:0.00 s:0.19 r:8.11
OK u:0.00 s:0.19 r:8.11
OK u:0.00 s:0.19 r:8.11
OK u:0.00 s:0.19 r:8.11
OK u:0.00 s:0.19 r:8.11
OK u:0.01 s:0.19 r:8.11
[cacti@linux5234 ~]$ crontab -e //添加计划任务
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &> /dev/null
[cacti@linux5234 ~]$ exit
[root@linux5234 cacti]# service crond start
[root@linux5234 cacti]# chkconfig --level 35 crond on
7.查看监测的结果:(监控图像界面)
单击Cacti控制台上方的“查看图像”标签,然后展开左侧栏的“默认”监测树,点击需要查看的设备(“Linux Vsftp服务器”),查看到监测项目的图示列表信息:
在RHEL5下构建Cacti监测系统_休闲_14
在RHEL5下构建Cacti监测系统_Cacti_15
Cacti到此为止,配置已经完成,另外就是Cacti的使用,根据实际需要进行设置,另外还可以添加一些Cacti支持的插件,获得一些扩展的服务。