应公司新项目需求,这两天在RHEL5.4下用Cacti配置了一台流量与性能监测系统服务器,现把安装过程记录了下来,供自己和其它朋友们以后参考。
本文参考了51CTO陆文举博客中的题为《Linux下Cacti安装》的一篇文章,在此非常感谢该位作者。
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具,Cacti是基于PHP语言开发的,在运行时需要PHP+MySQL的支持,首先需要安装一个LAMP环境。
 
一、安装环境
操作系统:Red Hat Enterprise Linux 5.4
数据库:MySQL:mysql-5.1.46
Web服务器:Apache:httpd-2.2.15
WEB语言:PHP:php-5.2.13
 
二、安装MySQL
软件包mysql-5.1.46.tar.gz
下载地址http://dev.mysql.com/downloads/mysql/
# tar -zxvf mysql-5.1.46.tar.gz //解压缩
# cd mysql-5.1.46 //进入解压缩后的文件目录
# ./configure --prefix=/usr/local/mysql \ //设定安装目录
--enable-thread-safe-client \ //编译线程安全版的客户端库
--without-debug \ //关闭debug功能
# make //编译
# make install //安装
# /usr/local/mysql/bin/mysql_install_db //初始化授权表
# chown –R root /usr/local/mysql //文件属性改为root用户
# chgrp –R root /usr/local/mysql //文件属性改为root用户所属组
# /usr/local/mysql/bin/mysqld_safe --user=root & //启动MySQL
# /usr/local/mysql/bin/mysqladmin –u root password ‘123456’ //修改root用户的密码为123456
#echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >>/etc/rc.local //将MySQL加入开机启动
 
三、安装Apache
软件包httpd-2.2.15.tar.gz
下载地址http://httpd.apache.org/download.cgi
# tar -zxvf httpd-2.2.15.tar.gz
# cd httpd-2.2.15
# ./configure --prefix=/usr/local/apache --enable-so
# make
# make install
#/usr/local/apache/bin/apachectl start //启动Apache
#echo "/usr/local/apache/bin/apachectl start" >>/etc/rc.local //加入开机启动
 
四、安装PHP
1、检查库文件是否安装
zlib libpng jpeg freetype fontconfig gd
#rpm –qa | grep *(*代表以上各个文件名,一个个进行检查)
注:我的RHEL5.4系统安装时已经自行安装了以上所有文件
2、安装PHP
软件包php-5.2.13.tar.gz
下载地址http://www.php.net/downloads.php
# tar -zxvf php-5.2.13.tar.gz
# cd php-5.2.13
# ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-png-dir --with-jpeg-dir --with-freetype-dir --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --enable-xml --enable-mbstring --enable-sockets
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini
修改php.ini文件,找到以下内容并去掉前面的分号:
#vi /usr/local/php/lib/php.ini
;extension=php_bz2.dll
;extension=php_gd2.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_xmlrpc.dll
;extension=php_zip.dll
 
五、配置Apache 服务的httpd.conf 文件及测试
1、编辑/usr/local/apache/conf/httpd.conf文件
在DirectoryIndex后添加index.php
在AddType application后面添加以下两行
AddType application/x-httpd-php .php
AddType applicatoin/x-httpd-php-source .phps
2、重启apache
# /usr/local/apache/bin/apachectl restart
3、测试
写个index.php文件放入主页所在目录
内容如下:
<?
phpinfo();
?>
在浏览器中输入http://服务器IP/
如果有php的信息,则说明Linux+apache+php+mysql环境配置成功了
 
六、安装rrdtool
1、安装rrdtool需要支持的一些库文件
cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart lgpl-devel intltool
先用rpm –qa | grep * 命令检查库文件是否存在
我的RHEL5.4系统中只有intltool没有随系统安装,现须先安装此库文件,否则编译rrdtool时会报错,提示需要intltool的支持方可
以下是intltool安装过程:
软件包intltool-0.40.6.tar.gz
下载地址http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz
#tar -zxvf intltool-0.40.6.tar.gz
#cd intltool-0.40.6
#./configure //如果在此步出现以下提示的错误时(我的就出现了),请按以下方法解决
在configure的时候提示XML::Parser perl module is required for intltool错误
具体解决的方法如下:
#perl -MCPAN -e shell
之后跟据提示一步步往下(我的选择非手动安装),配置完后会出现一个>的命令提示,在此输入以下命令
>install XML::Parser
等待它完成安装,exit退出,重新configure 就OK了
#make
#make install
2、安装rrdtool
软件包rrdtool-1.3.8.tar.gz
下载地址http://down1.chinaunix.net/distfiles/rrdtool-1.3.8.tar.gz
#tar -zxvf rrdtool-1.3.8.tar.gz
#cd rrdtool-1.3.8
#./configure --prefix=/usr/local/rrdtool --disable-tcl
#make
#make install
#ln -s /usr/local/rrdtool/bin/* /usr/local/bin/
 
七、安装net-snmp
软件包net-snmp-5.3.0.1.tar.gz
下载地址http://down1.chinaunix.net/distfiles/net-snmp-5.3.0.1.tar.gz
#tar -zxvf net-snmp-5.3.0.1.tar.gz
#cd net-snmp-5.3.0.1
# ./configure --prefix=/usr/local/net-snmp --enable-developer
#make
#make install
# cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
#vi /usr/local/net-snmp/share/snmpd.conf
找到以下内容并修改可访问SNMP网段和community
# sec.name source community
com2sec local localhost public
com2sec mynetwork network/netmask public
####
# ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
#/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf     //启动SNMP
#echo "/usr/local/net-snmp/sbin/snmp –c /usr/local/net-snmp/share/snmp/snmpd.conf" &gt;&gt; /etc/rc.local   //加入开机启动
 
八、安装Cacti
软件包cacti-0.8.7f.tar.gz
下载地址http://www.cacti.net/download_cacti.php
#tar -zxvf cacti-0.8.7f.tar.gz
#mv cacti-0.8.7f/* /usr/local/apache/htdocs/
#useradd cacti
#chown -R cacti /usr/local/apache/htdocs/rra
#chown -R cacti /usr/local/apache/htdocs
#chgrp -R cacti /usr/local/apache/htdocs/
 
九、建立数据库
1、登录MySQL,新建数据库,并授权
# /usr/local/mysql/bin/mysql -u root -p
Enter password: //输入密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.46 Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql&gt; create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql&gt; grant all on cacti.* to cacti@'localhost' identified by 'cactipassword';
Query OK, 0 rows affected (0.00 sec)
mysql&gt; flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql&gt; exit;
2、导入cacti数据库
#cd /usr/local/apache/htdocs
#/usr/local/mysql/bin/mysql -uroot -p123456 cacti &lt; cacti.sql
3、修改cacti安装配置文件
#vi /usr/local/apache/htdocs/include/config.php
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cactipassword";
$database_port = "3306";
/* Default session name - Session name must contain alpha characters */
 
十、WEB 界面初始化配置Cacti
1、在浏览器中输入 http://服务器IP/install,回车进入下列图示界面
clip_p_w_picpath002
clip_p_w_picpath004
2、点击上图Next后,cacti默认会在系统中找rrdtool、snmp的一些可程序文件路径,如果以上安装都正确的话会出现如下界面。注意:rrdtool和net-snmp的版本要选择正确
clip_p_w_picpath006
3、点击上图Finish后,cacti默认登录用户名为密码均为admin
clip_p_w_picpath008
4、登录后cacti会强制用户输入新的密码
clip_p_w_picpath010
5、点Save后,下图就是cacti登录进去后的界面
clip_p_w_picpath012
6、生成图形文件
#/usr/local/bin/php /usr/local/apache/htdocs/poller.php
7、生成图形文件后,点击上图中graphs按钮后显示如下两图(如果未进行生成图形文件这步,图中显示的则是叉叉)
clip_p_w_picpath014
clip_p_w_picpath016
8、加入cron服务,让图片上的流量定时变动
#crontab –e
*/5 * * * * env LANG=C /usr/local/bin/php /usr/local/apache/htdocs/poller.php
注:如系统没有安装cron服务,请先安装vixie-cron
9、添加监控设备和创建图形
根据向导添加要监控的设备和创建图形,我这里简单贴几张图片出来,具体略,或者详细请参考本文开始提到的一篇博文( http://luwenju.blog.51cto.com/620835/293981)。
clip_p_w_picpath018
clip_p_w_picpath020
 
到此,RHEL5.4下Cacti网络流量监测系统安装完成。