安装准备:
OS: LinuxRedHat5.4 64bit
MySql : MySql5
PHP: PHP5
RRDTOOL: RRDTOOL1.2.3
备注:因为在64bit上,很多发行版或者RPM二进制版本没有64位的,再加上为了方便版本控制,决定所有的文件使用源码编译,运行。
所需要下载的文件:
MySql:
MySQL-shared-community-5.0.96-1.rhel5.x86_64.rpm ----可以同libmysqlclient_r.so.15的二进制lib
MySQL-5.5.24-1.rhel5.x86_64.tar ---mysql数据库的安装文件
MySQL-devel-5.5.24-1.rhel5 .rpm ---cactid必须依赖的mysql开发api库
PHP:
php-5.3.13.tar.gz ---使用php5版本
Apache Httpd Server:
httpd-2.2.4.tar.gz
RRDTOOL:
gd-2.0.34.tar.gz
jpegsrc.v6b.tar.gz
fontconfig-2.4.2.tar.gz
cgilib-0.5.tar.gz
freetype-2.3.5.tar.gz
libart_lgpl-2.3.17.tar.gz
libpng-1.2.18.tar.gz
libxml2-2.6.30.tar.gz
(1).安装MySQL
//查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。
# rpm –qa | grep mysql# rpm –e mysql-*
//查找/etc/my.cnf(MySQL的选项配置文件),如果有请删除它,以免影响新安装版本的启动。
# rm –f /etc/my.cnf# tar –zxvf MySQL-5.5.24-1.rhel5.x86_64.tar# cd MySQL-5.5.24-1.rhel5.x86_64 # ./configure --prefix =/usr/local/mysql5.5.24 # make # make instal
//建立符号链接,如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后重新做一个符号链接就可以了。这样非常方便,数据也更加安全。
# ln –s /usr/local/mysql5.5.24 /usr/local/mysql
//添加用于启动MySQL的用户及用户组(如果以前安装过MySQl,用户及用户组可能已存在)。
# useradd mysql# groupadd mysql
//初始化授权表
# cd /usr/local/mysql# scripts/mysql_install_db
//修改MySQl目录的所有权
# cd /usr/local# chgrp –R mysql /usr/local/mysql5.5.24# chgrp –R mysql mysql# chown –R mysql /usr/local/mysql5.5.24# chown –R mysql mysql/data# ln –s /usr/local/mysql/bin/* /usr/local/bin/
//启动Mysql
# bin/safe_mysqld --user=mysql
//配置系统启动时自动启动MySQl
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld# chkconfig --add mysqld
//修改MySQL的最大连接数
//添加以下行
[mysqld]set-variable=max_connections=1000set-variable=max_user_connections=500set-variable=wait_timeout=200
//max_connections设置最大连接数为1000
//max_user_connections设置每用户最大连接数为500
//wait_timeout表示200秒后将关闭空闲(IDLE)的连接,但是对正在工作的连接不影响。
//保存退出,并重新启动MySQL
//重新启动MySQL后使用下面的命令查看修改是否成功
# mysqladmin -uroot -p variables
Password:
# mysqladmin -uroot -password "root"
//为mysql的root用户添加密码
//可以看到以下项说明修改成功
| max_connections | 1000| max_user_connections | 500| wait_timeout | 200
注:安装完毕后,登录数据库,查看其中数据是否存在如test, 强烈建议安装前执行make test
查看/usr/lib64中是否存在libmysql打头的库文件,并查看确认libmysqlclient_r文件存在
(2).安装Apache
下载地址:http://httpd.apache.org/
# tar –zxvf httpd-2.2.4.tar.gz# cd httpd-2.2.4# ./configure --prefix=/usr/local/apache --enable-so
//编译时加上加载模块参数--enable-so
# make# make install#vi /usr/local/apache/conf/httpd.conf
//修改Apache配置文件,添加ServerName www.yourdomain.com 或ServerName 本机ip
# vi /etc/rc.d/rc.local
//在rc.local上加入一行
/usr/local/apache/bin/apachectl –k start
系统启动时启动Apache服务。
测试apache服务是否安装成功:http://localhost/ 是否有index页面,
(4)RRDTOOL的安装
先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)
库文件下载地址:http://oss.oetiker.ch/rrdtool/pub/libs/
1).安装zlib
tar zlib-1.2.3.tar.gzcd zlib-1.2.3./configure --prefix=/usr/local/zlibmakemake install
2).安装libpng
tar zxvf libpng-1.2.16.tar.tarcd libpng-1.2.16cd scripts/mv makefile.linux ../makefilecd ..makemake install
注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个
3).安装freetype
tar zxvf freetype-2.3.4 .tar.gzcd freetype-2.3.4./configure --prefix=/usr/local/freetypemakemake install
4).安装Jpeg
tar -zxf jpegsrc-1.v6b.tar.gzcd jpeg-6b/mkdir /usr/local/libjpegmkdir /usr/local/libjpeg/includemkdir /usr/local/libjpeg/binmkdir /usr/local/libjpeg/libmkdir /usr/local/libjpeg/manmkdir /usr/local/libjpeg/man/man1//可以用mkdir -p /usr/local/libjpeg/man/man1 一步创建多层目录
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库
./configure --prefix=/usr/local/libjpeg --enable-shared --enable-staticmake && make install
5).安装Fontconfig
tar -zxvf fontconfig-2.4.2.tar.gzcd fontconfig-2.4.2
6).安装GD
tar -zxvf gd-2.0.34.tar.gzcd gd-2.0.34./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg./configure --with-freetype-config=/usr/local/freetypemakemake installmakemake install
编译时显示以下信息:
** Configuration summary for gd 2.0.34:
Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes
Support for Fontconfig library: yes
Support for Xpm library: no
Support for pthreads: yes
7).编辑/etc/ld.so.conf,添加以下几行到此文件中。
/usr/local/zlib/lib/usr/local/freetype/lib/usr/local/libjpeg/lib/usr/local/libgd/lib
并执行ldconfig命令,使用动态装入器装载找到共享库
8).安装libxml
# tar –zxvf libxml2-2.6.25.tar.gz# cd libxml2-2.6.25# ./configure# make# make install
9).安装RRDTool
由于rrdtool-1.2.23需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。直接运行以下bash脚本就可以完成安装:
注意:将cgilib-0.5.tar.gz、zlib-1.2.3.tar.gz、libpng-1.2.18.tar.gz、freetype-2.3.5.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.23.tar.gz放到/root/rrdtool-1.2.23目录下,将脚本保存为/root/rrdtool-1.2.23/rrdtoolinstall.sh,并给执行权限chmod u+x /root/rrdtool-1.2.23/rrdtoolinstall.sh。
以下链接是我重新打好的一个rrdtool-1.2.23的安装包,里面包括了所有用到的库文件和安装脚本,下载解压后执行脚本rrdinstall.sh即可以完成RRDTool的安装。
点击下载rrdtool-1.2.23.tar.gz
如果以上脚本安装失败,可以试试以下安装包:
http://61.156.20.41/autodownload/rrdtool-1.2.11.tar.gz
#!/bin/shBUILD_DIR=`pwd`INSTALL_DIR=/usr/local/rrdtoolcd $BUILD_DIRtar zxf cgilib-0.5.tar.gzcd cgilib-0.5make CC=gcc CFLAGS="-O3 -fPIC -I."mkdir -p $BUILD_DIR/lb/includecp *.h $BUILD_DIR/lb/includemkdir -p $BUILD_DIR/lb/libcp libcgi* $BUILD_DIR/lb/libcd $BUILD_DIRtar zxf zlib-1.2.3.tar.gzcd zlib-1.2.3env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lbmakemake installcd $BUILD_DIRtar zxvf libpng-1.2.18.tar.gzcd libpng-1.2.18env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \./configure --disable-shared --prefix=$BUILD_DIR/lbmakemake installcd $BUILD_DIRtar zxvf freetype-2.3.5.tar.gzcd freetype-2.2.5env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \./configure --disable-shared --prefix=$BUILD_DIR/lbmakemake installcd $BUILD_DIRtar zxvf libart_lgpl-2.3.17.tar.gzcd libart_lgpl-2.3.17env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lbmakemake installIR=-I$BUILD_DIR/lb/includeCPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"LDFLAGS="-L$BUILD_DIR/lb/lib"CFLAGS=-O3export CPPFLAGS LDFLAGS CFLAGScd $BUILD_DIRtar zxf rrdtool-1.2.23.tar.gzcd rrdtool-1.2.23./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl && make && make install
//完成后建立符号连接
ln –s /usr/local/rrdtool/bin/* /usr/local/bin/
(4).安装PHP
PHP下载地址:http://www.php.net/downloads.php#v5
tar -zxvf php-5.3.13.tar.gzcd php-5.3.13# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets# make# make install# cp php.ini-recommended /usr/local/php/lib/php.ini# ln –s /usr/local/php/bin/* /usr/local/bin/# vi /usr/local/apache/conf/httpd.conf
查找
AddType application/x-compress .ZAddType application/x-gzip .gz .tgz
在其下加入
AddType application/x-tar .tgzAddType application/x-httpd-php .phpAddType image/x-icon .ico
修改DirectoryIndex 行,添加index.php
修改为
DirectoryIndex index.php index.html index.html.var
# vi /usr/local/apache/htdocs/test.php
wq保存退出。
# /usr/local/apache/bin/apachectl –k stop#/usr/local/apache/bin/apachectl –k start
在浏览器中输入:http://www.yourdomain.com/test.php进行测试。并新建议db.php对数据库的连接测试
对php编译选项的解释:
--prefix=/usr/local/php //指定PHP的安装目录
--with-apxs2=/usr/local/apache2/bin/apxs //支持Apache模块
--with-mysql=/usr/local/mysql //支持MySQl
--with-gd=/usr/local/libgd //支持GD库
--enable-gd-native-ttf //激活对本地 TrueType 字符串函数的支持
--with-ttf //激活对 FreeType 1.x 的支持
--with-freetype-dir=/usr/local/freetype //激活对 FreeType 2.x 的支持
--with-jpeg-dir=/usr/local/libjpeg //激活对 jpeg-6b 的支持
--with-png-dir=/usr //激活对 png 的支持
--with-zlib-dir=/usr/local/zlib //激活对zlib 的支持
--enable-mbstring //激活mbstring模块
--enable-gd-jis-conv //使JIS-mapped可用,支持日文字体
--with-mail //支持Mail函数
--enable-xml //支持XML--enable-sockets //支持套接字
(5)net-snmp安装
RedHat默认安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要编译安装NET-SNMP。
NET-SNMP官方网站:http://www.net-snmp.org/
# tar zxvf net-snmp-5.2.4.tar.gz#cd net-snmp-5.2.4#./configure --prefix=/usr/local/net-snmp --enable-developer#make#make install# ln –s /usr/local/net-snmp/bin/* /usr/local/bin/#cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
//修改snmpd.conf(修改COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等)。
# vi /etc/rc.d/rc.local
//在 rc.local 上加入一行
系统启动时启动SNMP服务。
(6)安装Cacti
Cacti官方网站:www.cacti.net/
# tar –zxvf cacti-0.8.6j.tar.gz# mv –r cacti-0.8.6j /usr/loca/apache/htdocs/cacti# vi /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cacti"; $database_password = "cacti";
//添加cacti用户
# useradd cacti
//将rra目录的所有权给cacti用户
# chown –R cacti /usr/loca/apache/htdocs/cacti/rra
//修改cacti目录所属组
# chgrp –R cacti /usr/loca/apache/htdocs/cacti
//为cacti用户添加cron任务
# su – cacti# crontab –e
*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。
//进行数据库的配置准备,进行php+mysql+cacti的联合测试
#mysql –uroot –pPassword:mysql> create database cacti;Query OK, 1 row affected (0.00 sec)mysql> grant all on cacti.* to cacti@localhost identified by “cacti”;Query OK, 1 row affected (0.00 sec)mysql>exit# cd /usr/local/apache/htdocs/cacti# mysql –uroot –p cacti < cacti.sqlPassword: //在页面上输入http://localhost/cacti/ 可以得到 cacti的页面,测试成功。
//构架net-snmpd服务,配置snmpd准备做cmd.php同snmpd的联合测试
1).在浏览器中输入:http://www.yourdomain.com/cacti/
默认用户名:admin 密码:admin
2).更改密码
3).设置cacti用到的命令路径
snmpwalk Binary Path /usr/local/ bin/snmpwalksnmpget Binary Path /usr/local/ bin/snmpgetRRDTool Binary Path /usr/local/ bin/rrdtoolPHP Binary Path /usr/local/bin/phpCacti Log File Path /usr/local/apache/htdocs/cacti/log/cacti.logCactid Poller File Path /usr/local/cactid/cactid
4).进入cacti后需确认更改以下位置:(如下图)
Console>Settings>GeneralConsole>Settings>Poller (7)安装Cactid或者 Spine
CACTID 的安装需要以下支持:
o net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项)
o mysql
o mysql-devel (mysql源文件编译安装后默认支持)
o openssl-devel (Redhat默认安装)
# tar -zxvf cacti-cactid-0.8.6i.tar.gz# cd cacti-cactid-0.8.6i# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp# make
//这时你将在此目录下看到多出了cactid、cactid.conf两个文件
# mkdir /usr/local/cactid# cp cactid cactid.conf /usr/local/cactid# vi /usr/local/cactid/cactid.conf //修改cactid配置文件
DB_Host 127.0.0.1DB_Database cactiDB_User cactiDB_Pass cacti