公司的服务器组遍布伟大祖国的大江南北,操作系统也都不相同。最近使用 Cacti + RRDTool + Net-SNMP 对这些服务器实施了统一的性能监控管理。单纯的 Cacti 不是监控工具,她基于 AMP 环境和 SNMP 协议,使用 snmpget 获取流量数据,使用 RRDTool 组件绘图。并且 Cacti 有个别名,叫做“仙人掌”。她的界面非常漂亮,你根本无需明白那些 RRDTool 的复杂参数就能轻易地绘出漂亮的图形。另外,她提供了强大的数据管理和用户管理功能,可以与 LDAP 结合进行用户的验证。还提供了自定义模板的功能,让你添加自己的 snmp_query 和 script。可以说,Cacti 将 RRDTool 复杂难懂的缺点都补足了。所以,Cacti 被认识是 MRTG 的最佳替代品。
1、监控管理端配置
监控端基于 FreeBSD 6.2 操作系统、AMP(Apache、MySQL、PHP)环境,其安装配置过程在此不赘述,请寻求搜索引擎的帮助。值得注意的是,PHP 最好加上 SNMP 的支持。在编译的时候,加上 -enable-snmp。另外,PHP 不能运行在安全模式下,否则 Cacti 将不正常,无法调用 /usr/local/bin/ 下面的文件。除此之外,有一种说法称 MySQL 5 以上的版本不能正常运行 Cacti,就我的个人测试,暂未发现类似的情况。
安装完 AMP 之后开始下载并安装 RRDTool。值得注意的是,RRDTool 1.2.x 版本是用 libart 和 freetype 画图,相比 1.1.x 版本,前者的绘图速度会稍稍慢一些。从 1.2.x 版本开始,RRDTool 不再自带外部的 lib 库,所以需要从这里下载这些库来安装。而 1.1.x 版本自带了 GD 库,可惜这个 GD 库不支持中文,绘中文的时候会出现乱码。
这里选用 1.2.26 版本的 RRDTool,所以需要先安装 lib 库。
安装 cgilib:
#tar -zxvf cgilib-0.5.tar.gz
#cd cgilib-0.5
#vi cgi.c
去掉:
#include <malloc.h>
然后:
#vi cgitest.c
将第 116 行
printf ("<h3>Cookie "Library" set</h3>\n");
改为:
printf ("<h3>Cookie \"Library\" set</h3>\n");
因为 cgilib 版本为 linux 版本,用 make 无法安装,所以:
#gmake
#gmake install
#cp *.h /usr/include/
#cp libcgi* /usr/lib
安装 zlib:
#tar -zxvf zlib-1.2.2.tar.gz
#cd zlib-1.2.2
#./configure --prefix=/usr
#make
#make install
安装 libpng:
#tar -zxvf libpng-1.2.8-config.tar.gz
#cd libpng-1.2.8-config
#cp scripts/makefile.gcmmx makefile
#./configure --disable-shared --prefix=/usr
#make
#make install
安装 freetype(需事先安装 gmake):
#tar -zxvf freetype-2.1.10.tar.gz
#mv /usr/bin/make /usr/bin/make.bak
#./configure --disable-shared --prefix=/usr
#make
#make install
#mv /usr/bin/make.bak /usr/bin/make
安装 libart_lgpl:
#tar -zxvf libart_lgpl-2.3.17.tar.gz
#./configure --disable-shared --prefix=/usr
#make
#make install
安装 RRDTool:
#tar -zxvf rrdtool-1.2.6.tar.gz
#./configure
#make
#make install
#cp /usr/local/rrdtool/bin/* /usr/local/bin/
#ln -s /usr/local/rrdtool-1.2.6 /usr/local/rrdtool
安装 net-snmp:
#tar -zxvf net-snmp-5.2.1.2.tar.gz
#cd net-snmp-5.2.1.2
#./configure
#make
#make install
安装完成后运行 snmpget、snmpwalk 测试是否安装成功。
安装 Cacti:
#cp cacti-0.8.7a.tar.gz /www
#cd /www/
#tar -xzvf cacti-0.8.7a.tar.gz
#mv cacti-0.8.7a cacti
#chown -R www:www cacti/
分配数据库权限:
#mysql -u root -p
mysql>create database cacti;
mysql>grant all privileges on cacti.* to cactiuser@localhost
identified by 'password';
mysql>quit;
修改 Cacti 配置文件:
#vi /www/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "password";
导入数据库:
/usr/local/mysql/bin/mysql -u root -p cactidb < /www/cacti/cacti.sql
设置刷新时间:
#crontab -e
*/1 * * * * /usr/local/php/bin/php /www/cacti/poller.php > /dev/null 2>&1
这里的 */1 代表每一分钟执行一次。
2、被监控端配置
2.1、FreeBSD 系统
未完待续。
2.2、Windows 2003 系统
未完待续。