一、环境需求

 
操作系统:REDHAT 5.4

二、编译安装
2.1 mysql安装mysql安装请查看 http://johnsz.blog.51cto.com/525379/736126
 
2.2 编译安装apache
编译安装支持库

a   编译安装jpegsrc.v6b.tar.gz

#     tar zxvf jpegsrc.v6b.tar.gz

#     mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}

#     cd jpeg-6b/

#     ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static

#     make

#      make install


 

b 编译安装libpng-1.4.4.tar.gz

 

#     tar zxvf libpng-1.4.4.tar.gz

#     cd libpng-1.4.4

#     ./configure --prefix=/usr/local/libpng

#     make

#      make install

 

 

c 编译安装freetype-2.4.3.tar.gz

 

#     tar zxvf freetype-2.4.3.tar.gz

#     cd freetype-2.4.3

#     mkdir -pv /usr/local/freetype

#     ./configure --prefix=/usr/local/freetype

#     make && make install

注:可以yum,方便快捷点。

 

 

d 编译安装zlib-1.2.5.tar.gz     

 

#     tar zxvf zlib-1.2.5.tar.gz

#     cd zlib-1.2.5

#     mkdir /usr/local/zlib

#     ./configure --prefix=/usr/local/zlib

#     make

#      make install

注:可以yum,方便快捷点。

 

 

e 编译安装curl-7.21.2.tar.gz

 

#     tar zxvf curl-7.21.2.tar.gz

#     mkdir -pv /usr/local/curl

#     cd curl-7.21.2

#     ./configure --prefix=/usr/local/curl

#     make

 #    make install

注:可以不需要

 

 

f、编译安装libxml2-sources-2.7.8.tar.gz

 

#     tar zxvf libxml2-sources-2.7.8.tar.gz

#     cd libxml2-2.7.8/

#     mkdir -pv /usr/local/libxml2

#     ./configure --prefix=/usr/local/libxml2

#     make

#     make install

注:最好源码安装,也可以yum安装

 

 

G、编译安装libxslt-1.1.9.tar.gz                        

 

#     tar zxvf libxslt-1.1.9.tar.gz

#     mkdir -pv /usr/local/libxslt

#     cd libxslt-1.1.9

#     ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2

#     make

#     make install

注:可以安装,也可以不安装

 

 

H、编译安装fontconfig-2.8.0.tar.gz

 

#     tar zxvf fontconfig-2.8.0.tar.gz

#     cd fontconfig-2.8.0

#     mkdir -pv /usr/local/fontconfig

#     ./configure --prefix=/usr/local/fontconfig --disable-docs --with-freetype-config=/usr/local/freetype/bin/freetype-config

#     make

#     make install

 

 

I、编译安装 gettext-0.18.tar.gz        

 

可以使用 yum install gettext安装

#     tar zxvf gettext-0.18.tar.gz

#     cd gettext-0.18

#     mkdir /usr/local/gettext

#     ./configure --prefix=/usr/local/gettext

#     make

#     make install


J、编译安装libart_lgpl-2.3.17.tar.tar

#     tar zxvf libart_lgpl-2.3.17.tar.tar

#     cd libart_lgpl-2.3.17

#     mkdir -pv /usr/local/libart

#     ./configure --prefix=/usr/local/libart             #也有加上参数--disable-shared    意义暂时不明白

#     make

#     make install


K、编译安装gd-2.0.32.tar.gz 

#     tar zxvf gd-2.0.35.tar.gz

#     cd gd-2.0.35

#     mkdir -pv /usr/local/gd2

#     ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg

#     tar zxvf httpd-2.2.15.tar.gz


 

注:这个源码包特殊,最好安装gd-2.0.32.tar.gz以上的包,不然会报错,这个包一路装下去也没报错。

 

L   httpd-2.2.17.tar.gz

#     cd httpd-2.2.17

#     ./configure --prefix=/usr/local/apache2 --enable-so --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-rewrite --enable-deflate --enable-expires --disable-cgi --disable-cgid --disable-access --disable-env --disable-autoindex --disable-asis --disable-action --disable-negotiation --disable-include --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

#     make

#      make install

#     /usr/local/apache2/bin/apachectl -l      #查看编译的模块

#     /usr/local/apache2/bin/apachectl –k start    #启动http服务

输入 http://IP    出现页面表示apache安装成功

 

M、安装php

1 编译安装 zxvf php-5.3.3.tar.gz

#     tar zxvf php-5.3.3.tar.gz

#     mkdir -pv /usr/local/php5

#     cd php-5.3.3

#     ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-gd --with-jpeg-dir=/usr/local/jpeg --with-zlib-dir=/usr/local/zlib --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-mysql=/usr/local/mysql

--enable-mbstring=all--enable-mbregex --enable-ftp --enable-soap --with-xsl=/usr/local/libxslt --with-config-file-path=/usr/local/php5/etc --enable-zip --with-libXML-dir=/usr/local/libxml2 -- enable -sockets (这个enable-sockets重要一定要有,上面有些软件是用yum安装的,所以不用指向安装地址) 

#     make

#     make install


 

N整合apachephp

 

修改httpd.conf文件使支持php

#     vi /usr/local/apache/conf/httpd.conf

查看是否有这一行,如果没有,需要增加上,理论上apache2.2.17php5.3.4编译安装完成后,会自动生成这一行

LoadModule php5_module        modules/libphp5.so

在第310行下面增加下面的内容,309310行的内容是

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

在这两行下面加入下面的内容,就能支持php

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

注:关于没有php.ini的解决,从源码目录复制

cp php.ini-development /usr/local/php5/etc/php.ini       #php5.33以上都没有php,ini文件应该不叫php.ini-dist,这个文件是php5.2.14

修改PHP时区
#vi  /usr/local/php5/etc/php.ini 
date.timezone 改为PRC
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC
增加一个php测试页面(现在的家目录在$apache_home/htdocs下面)另外,测试完后不要忘记删掉这个页面

#     vi /usr/local/apache/htdocs/index.php


<? phpinfo();

?>
 
P、安装rrdtool

解决依赖关系

安装方法1:
#yum -y install rrdtool*
 
安装方法2:
第一步:先安装这个包

# rpm –ivh rrdtool-devel-1.4.4-1.el5.wrl.i386.rpm

第二步:要这样安装这样的包 (这两个包要同时安装)

# rpm –ivh  rrdtool-1.4.4-1.el5.wrl.i386.rpm rrdtool-1.4.4-1.wrl.src.rpm

Q、安装cacti

#     tar zxvf cacti-0.8.7g.tar.gz

#     mv cacti-0.8.7g /usr/local/apache/htdocs/cacti

#     vi /usr/local/apache/htdocs/cacti/include/config.php

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "127.0.0.1";

$database_username = "cacti";                                #用户名自己弄一个

$database_password = "mysql";                                 #密码自己弄一个

$database_port = "3306";

#     useradd cacti

#     chown -R cacti:cacti /usr/local/apache/htdocs/cacti       这一步相当的重要,涉及到权限问题

#     crontab -e -u cacti                           #

加入自动执行规则,每 5 分钟执行
*/5 * * * * /usr/local/php5/bin/php /var/www/cacti/poller.php > /dev/null 2>&1

注:可以先在cacti用户中运行一次

su - cacti

/usr/local/php5/bin/php /usr/local/apache/htdocs/cacti/poller.php

R、启动mysql建立cacti数据库和用户,导入数据库模板

  Mysql –u root –p mysql

> create database cacti;

> use cacti;

> source /usr/local/apache/htdocs/cacti/cacti. sql  

> grant all privileges on cacti.* to  cacti@localhost identified by 'mysql';

> grant all privileges on cacti.* to  cacti@127.0.0.1 identified by 'mysql';

> flush privileges;

注解:grant all privileges on *.* to 用户名@登录主机 identified by "密码";给予全局权限


T、安装snmp

#     yum  install net-snmp-*

#     vi /etc/snmp/snmpd.conf

com2sec notConfigUser default       public                    

改为127.0.0.1 这一个是cacti监控服务器的IP地址

com2sec notConfigUser  127.0.0. 1         public

access notConfigGroup ""    any   noauth    exact systemview none none     

改为

access  notConfigGroup ""    any  noauth    exact  all        none none

#view all    included .1                               80                

去掉注释#

view all    included .1                               80
 
保存退出,运行/etc/init.d/snmpd start
 
查看snmp状态:snmpwalk -c public -v1 127.0.0.1 .1.3.6.1.2.1.25.2.3.1
S、安装cactid

#     tar zxvf cacti-cactid-0.8.6k.tar.gz

#     cd cacti-cactid-0.8.6k

#     ./configure --with-mysql=/usr/local/mysql

#     make

#     make install

#     cp cactid cactid.conf /usr/local/cactid/

#     vi /usr/local/cactid/cactid.conf

DB_Host         127.0.0.1

DB_Database     cacti

DB_User        cacti

DB_Pass         mysql

DB_Port         3306


三.初始化Cacti系统
1.在客户端Web浏览器访问Cacti服务器,第一次访问cacti界面,页面将跳转至Cacti的初始化安装向导界面

2.设置各种工具命令的路径,如果没有找到,需要手动修改。此时需要注意,如果是编译安装的AMP平台,有些路径需要作对应改变。

3.设置RRDtool工具的版本和字体的路径:在Cacti的控制台界面中,点击左侧栏的“设置”,打开Cacti的系统设置界面,确认“常规”标签页中的“RRDtool应用程序版本”设置为“RRDtool1.4.x”。

4.找到“路径”选项卡中的“RRDtool默认字体路径”,将字体路径设置为“/usr/share/fonts/zh_TW/TrueType/bsmi00lp.ttf”

5.基本设置完成,可以添加相应设备进行监控
 
四、cacti图片不显示的解决方法
先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误。
如果是在linux下安装cacti的话,可以按以下步骤检测:
1、cacti的data sources和Graph Management均有debug。看是否有错误,比如rrd文件找不到等。
2、data sources里看rrd文件的名称,然后到/cacti/rra目录中看是否有该文件存在。
3、如果有rrd文件存在,则可以使用
rrdtool fetch yourRRDfile.rrd AVERAGE
复制代码
命令,看该文件的采集的数据,如果都是“nan”,那就是没有取到数据。
4、有可能是snmpget、snmpwalk和rrdtool的路径错误。
5、排除错误后,需要重新建立该监测点(graph)。
提示:每一个图像的文件均会保存为rra目录里的一个rrd为后缀的文件(可以在“Data Sources”中看到)
。“Data Sources”和“Graph Management”中均可以进行debug,可以从debug中得出错误信息。