做这个环境用了2天时间,终于成功了。自己做下记录。
环境:
RHEL5.4
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
安装
Cacti
需要安装的软件包:
apache
,
mysql
,
php
,
net-snmp
,
cacti
,
cacti-cactid
,
rrdtool
,以及
php
需要的
gd
库:
zlib,freetype,libpng,jpeg
,
fontconfig
,
libgd
,
libxml
。
注:版本能用最新的就用最新的,兼容性一般是新的好。
rrd-tool貌似只能用1.2.X,1.3.X好像支持cacti。
一:安装
mysql
[root@station202 cacti]# useradd mysql
[root@station202 cacti]# tar zxvf mysql-5.0.81-linux-i686-glibc23.tar.gz -C /usr/local/
[root@station202 cacti]# cd /usr/local
[root@station202 local]# ln -s mysql-5.0.81-linux-i686-glibc23 mysql
[root@station202 local]# cd mysql
[root@station202 mysql]# chown -R mysql:mysql .
./configure
make
make install
[root@station202 mysql]# scripts/mysql_install_db --user=mysql //
初始化授权表
[root@station202 mysql]# bin/mysqld_safe --user=mysql & //启动mysql
[root@station202 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld //添加mysqld服务
[root@station202 mysql]# chkconfig --add mysqld
[root@station202 mysql]# chkconfig mysqld on
对mysqld的设置:
[root@station202 mysql]# vim /etc/my.cnf
[mysqld]
set-variable=max_connections=1000 ##
最大连接数
set-variable=max_user_connections=500 ##
每个用户最大连接数
set-variable=wait_timeout=200 ##
多少秒后关闭空闲(
IDLE
)
##
添加以上内容
[root@station202 mysql]# chown root.mysql /etc/my.cnf
[root@station202 mysql]# service mysqld restart
[root@station202 mysql]# bin/mysqladmin -u root -p variables
##
可以看到以下项说明修改成功
|max_connections | 1000
|max_user_connections | 500
|wait_timeout | 200
[root@station202 ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
二:安装
apache
[root@station202 ~]# useradd apache
[root@station202 ~]# tar zxvf httpd-2.2.4.tar.gz
[root@station202 ~]# cd httpd-2.2.4
[root@station202 httpd-2.2.4]# ./configure --prefix=/usr/local/apache --enable-so ## --enable-so
一定要带,不
然不能动态加载模块
[root@station202 httpd-2.2.4]# make
[root@station202 httpd-2.2.4]# make install
[root@station202 httpd-2.2.4]# cd /usr/local/apache/
[root@station202 apache]# vim conf/httpd.conf
ServerName 192.168.1.202 ##
修改这行内容(本机
IP
或者域名)
[root@station202 apache]# vim /etc/rc.local
/usr/local/apache/bin/apachectl -k start ##
添加这行,开机启
apache
[root@station202 apache]# /usr/local/apache/bin/apachectl -k start ##
启动
apache
三:安装
PHP
先安装
zlib,libpng,freetype,jpeg
,
fontconfig
,
libgd
,
libxml
。以便于让
PHP
支持
GD
库(
Cacti
的
WeatherMap
插件必须要较新
GD
库的支持)
1):
安装
zlib
[root@station202 ~]# tar zxvf zlib-1.2.3.tar.gz
[root@station202 ~]# cd zlib-1.2.3
[root@station202 zlib-1.2.3]# ./configure --prefix=/usr/local/zlib
[root@station202 zlib-1.2.3]# make
[root@station202 zlib-1.2.3]# make install
2):
安装
libpng ##
编译的时候需要
zlib
,
--with-zlib
指定
[root@station202 ~]# tar zxvf libpng-1.2.18.tar.gz
[root@station202 ~]# cd libpng-1.2.18/
[root@station202 libpng-1.2.18]# ./configure --prefix=/usr/local/libpng --with-zlib=/usr/local/zlib
[root@station202 libpng-1.2.18]# make
[root@station202 libpng-1.2.18]# make install
3):
安装
freetype
[root@station202 ~]# tar zxvf freetype-2.3.5.tar.gz
[root@station202 ~]# cd freetype-2.3.5
[root@station202 freetype-2.3.5]# ./configure --prefix=/usr/local/freetype
[root@station202 freetype-2.3.5]# make
[root@station202 freetype-2.3.5]# make install
4):
安装
libjpeg
[root@station202 ~]# tar zxvf jpegsrc.v6b.tar.gz
[root@station202 ~]# cd jpeg-6b/
[root@station202 jpeg-6b]# mkdir /usr/local/libjpeg
[root@station202 jpeg-6b]# mkdir /usr/local/libjpeg/include
[root@station202 jpeg-6b]# mkdir /usr/local/libjpeg/bin
[root@station202 jpeg-6b]# mkdir /usr/local/libjpeg/lib
[root@station202 jpeg-6b]# mkdir /usr/local/libjpeg/man
[root@station202 jpeg-6b]# mkdir /usr/local/libjpeg/man/man1
[root@station202 jpeg-6b]# ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
##
这里
configure
一定要带
--enable-shared
参数,不然,不会生成共享库
[root@station202 jpeg-6b]# make
[root@station202 jpeg-6b]# make install
5):
安装
libxml2
[root@station202 Server]# rpm -qa | grep libxml
libxml2-2.6.26-2.1.2
libxml2-python-2.6.26-2.1.2
[root@station202 Server]# rpm -ivh libxml2-devel2.6.26-2.1.2.i386.rpm
6):
安装
fontconfig ##
需要
libxml2
和
freetype
的支持
[root@station202 ~]# tar zxvf fontconfig-2.4.2.tar.gz
[root@station202 ~]# cd fontconfig-2.4.2
[root@station202 fontconfig-2.4.2]# ./configure --with-freetype-config=/usr/local/freetype/bin/freetype-config --prefix=/us/local/fontconfig
[root@station202 fontconfig-2.4.2]# make
[root@station202 fontconfig-2.4.2]# make install
7):
安装
gd
[root@station202 ~]# tar zxvf gd-2.0.33.tar.gz
[root@station202 ~]# cd gd-2.0.33
[root@station202 gd-2.0.33]# ./configure --prefix=/usr/local/libgd --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg --with-fontconfig=/usr/local/fontconfig
##
可以看到下面的信息,一定要看到才正确。
** Configuration summary for gd 2.0.33:
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: yes
Support for pthreads: yes
[root@station202 gd-2.0.33]# make
[root@station202 gd-2.0.33]# make install
8):
编辑
/etc/ld.so.conf
,添加以下几行到此文件中。
/usr/local/zlib/lib
/usr/local/freetype/lib
/usr/local/libjpeg/lib
/usr/local/libgd/lib
[root@station202 gd-2.0.33]# ldconfig ##
使用动态装入器装载找到共享库
注:上面安装GD的时候,我make第一次error,make第二次好了。神奇。freetype有1个error,不过ignore了。
9):
安装
PHP
[root@station202 ~]# tar zxvf php-5.2.9.tar.gz
[root@station202 ~]# cd php-5.2.9
[root@station202 php-5.2.9]# ./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/local/libpng --with-zlib-
dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets --with-libxml-dir=/usr/lib
[root@station202 php-5.2.9]# make
[root@station202 php-5.2.9]# make install
###########################################
对
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/local/lib //
激活对
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 //
支持套接字
###########################################
[root@station202 php-5.2.9]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@station202 php-5.2.9]# cp php.ini-recommended /usr/local/php/lib/php.ini
##
使
apache
支持
php
[root@station202 php-5.2.9]# vi /usr/local/apache/conf/httpd.conf
AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
##
添加上面几行
<IfModule dir_module>
DirectoryIndex index.html index.php ##
添加个
index.php
</IfModule>
[root@station202 php-5.2.9]# /usr/local/apache/bin/apachectl -k restart
##
注意,如果你开了
selinux
,
httpd
在读取
/usr/local/apache/modules/libphp5.so
的时候,会出错误提示
##
有两种方法:
[root@station202 php-5.2.9]# setenforce 0 ##
把
selinux
设置成默许模式
(不推荐)
或者:
[root@station202 php-5.2.9]# chcon -t textrel_shlib_t /usr/local/apache/modules/libphp5.so
推荐
# vi /usr/local/apache/htdocs/test.php
##
添加以下行
<?php
Phpinfo();
?>
## wq
保存退出。
(vim
/usr/local/php/lib/php.ini,
把
short_open_tag = Off
改成
On
)
在浏览器中输入:
http://www.yourdomain.com/test.php
进行测试。会出现php的网站。
四:安装
rrdtool
我用的是
rrdtool-1.2.30.tar 直接安装就可以了。没特别要求。
五:安装
net-snmp
[root@station202 ~]# tar zxvf net-snmp-5.2.4.tar.gz
[root@station202 ~]# cd net-snmp-5.2.4
[root@station202 net-snmp-5.2.4]# ./configure --prefix=/usr/local/net-snmp --enable-developer
##
这里会要填一些问题,我都是默认,一路回车。
##
如果是
Linux
主机要监测
100M
以上的流量,需要带
“--enable-mfd-rewrites”
参数重新编译最新的
net-snmp
。
[root@station202 net-snmp-5.2.4]# make
[root@station202 net-snmp-5.2.4]# make install
[root@station202 net-snmp-5.2.4]# ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
[root@station202 net-snmp-5.2.4]# cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
[root@localhost snmp]# vim /etc/snmp/snmpd.conf
# sec.name source community
com2sec notConfigUser 127.0.0.1 public
com2sec mynetwork 192.168.192.0/24 cacti
上面的IP是可以监控本机的IP。127.0.0.1不能用localhost代替。吃过亏。
## incl/excl subtree mask
view all included .1 80
把这句话取消注释。
[root@station202 net-snmp-5.2.4]# echo "/usr/local/net-snmp/sbin/snmpd" >> /etc/rc.local //开机启动脚本
六:安装
cacti
[root@station202 ~]# tar zxvf cacti-0.8.6j.tar.gz -C /usr/local/apache/htdocs/
[root@station202 ~]# cd /usr/local/apache/htdocs/
[root@station202 htdocs]# mv cacti-0.8.6j/ cacti
[root@station202 htdocs]# vi /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
[root@station202 htdocs]# chown -R cacti /usr/local/apache/htdocs/cacti/rra
[root@station202 htdocs]# chgrp -R cacti /usr/local/apache/htdocs/cacti
[root@station202 htdocs]# crontab -e -u cacti
##
添加下面的内容
*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
##
注意:首次执行
poller.php
时请使用
cacti
用户,否则生成的
rrd
文件
cacti
将没有写入权限。
[root@station202 cacti]# su - cacti
[cacti@station202 ~]$ /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php
没成功,可能与之前的配置错误有关。后来成功了。
[root@station202 cacti]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 108
Server version: 5.0.81 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant select,insert,update,delete,create on *.* to cacti@"localhost" Identified by "cacti";
Query OK, 0 rows affected (0.00 sec)
mysql> create database cacti;
Query OK, 1 row affected (0.08 sec)
[root@station202 cacti]# mysql -u cacti -p cacti < cacti/cacti.sql
Enter password:
##
导入数据库
七
.
安装
Cactid
## CACTID
的安装需要以下支持:
net-snmp-devel
(需要编译安装
net-snmp
时添加
--enable-developer
选项)
mysql
mysql-devel
(
mysql
源文件编译安装后默认支持)
要自己安装
openssl-devel
(
Redhat
默认安装)
[root@station202 ~]# tar zxvf cacti-cactid-0.8.6j.tar.gz
[root@station202 ~]# cd cacti-cactid-0.8.6j
[root@station202 cacti-cactid-0.8.6j]# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp/
# make
//
这时你将在此目录下看到多出了
cactid
、
cactid.conf
两个文件
[root@station202 cacti-cactid-0.8.6j]# mkdir /usr/local/cactid
[root@station202 cacti-cactid-0.8.6j]# cp cactid cactid.conf /usr/local/cactid/
[root@station202 cacti-cactid-0.8.6j]# vim /usr/local/cactid/cactid.conf
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
##
用浏览器打开:
http://localhost/cacti/install/
访问
http://ip/cacti
报错如下:
FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php'
解决办法:
查看日志
/usr/local/apache2/htdocs/cacti/log/cacti.log
,没有日志信息
本机访问远端的
mysql
,是可以访问的。
但是本机访问
mysql
mysql -u cacti -pcacti
确发现无法访问,返回信息如下:
ERROR 1045 (28000): Access denied for user 'cacti'@'localhost' (using password: YES)
NND
,看来这个
mysql
的控制越来越严格了,重新设置一遍
localhost
的访问看
mysql -u root -p
use mysql;
grant all privileges on cacti.* to cacti@"localhost" identified by 'cacti';
flush privileges;
可以使用
mysql -u cacti -pcacti
登陆了。
将
config.php
的
hostname
改为
127.0.0.1
,重试,数据库连接上了,报错如下:
The following PHP extensions are missing:
sockets
Please install those PHP extensions and retry
解决办法,编译安装
php
的时候,没有加上参数,需要重新再做一次。。。。。
In the ./configure step building PHP, append --enable-sockets
步骤按照前面
php
安装哪里,只是在
./configure
的时候加上上面所说的参数:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-oci8=share,instantclient,/opt/oracle/instantclient --enable-sockets
重新安装好
php
,重启
apache2
后,终于打开了安装界面
http://10.206.19.59/cacti/install/
##
对
cacti
进行设置,根据自己的情况,前面安装没有错的话,应该都是
next
,
next
就
OK
##
输入用户
/
密码:
admin/admin
##
然后会让你修改
cacti
的密码。
##
现在可以看到
cacti
的仙人掌了。
cacti的具体配置下次再写
参考
Cacti官网:[url]http://www.cacti.net/index.php[/url]
Cacti官网论坛:[url]http://forums.cacti.net/[/url]
Cacti文档:[url]http://docs.cacti.net/[/url]
Cacti插件:[url]http://cactiusers.org/index.php[/url]
Network Weathermap:[url]http://www.network-weathermap.com/[/url]
RRDTool官网:[url]http://oss.oetiker.ch/rrdtool/[/url]
NET-SNMP官方网站:[url]http://www.net-snmp.org/[/url]
Apache官网:[url]http://httpd.apache.org/[/url]
MySQL官网:[url]http://www.mysql.com/[/url]
PHP官网:[url]http://www.php.net/[/url]