LAMP+CACTI

做这个环境用了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]




你可能感兴趣的:(职场,lamp,cacti,休闲)