天天看点

(马世龙)Linux下CACTI完全搭建技术文档一

<a>环境搭建</a>

Cacit 运行环境需要 PHP + Mysql + rrdtool 以及 snmp 工具的支持。

下边是本次配置需要用到的软件。

Catci:

cacti-0.8.6e.tar.gz

rrdtool-1.0.50.tar(rrdtool-1.2.27.tar没有自带库,1.0版本的自带库文件,所以先要编译好GD环境)

net-snmp-5.0.9-2.30E.15

net-snmp-devel-5.0.9-2.30E.15

net-snmp-libs-5.0.9-2.30E.15

net-snmp-utils-5.0.9-2.30E.15 (net-snmp使用系统rpm安装包就可以,默认snmp.conf在/etc/snmp/snmp.conf)

PHP:

php-4.3.9.tar.gz

curl-7.15.3.tar.gz

freetype-2.1.9.tar.gz

gettext-0.16.1.tar.gz

gd-2.0.35.tar.gz

jpegsrc.v6b.tar.gz

libart_lgpl-2.3.17.tar.gz

libpng-1.2.18.tar.gz

libxml2-2.6.32.tar.gz

zlib-1.2.3.tar.gz

Apache:

httpd-2.0.52.tar.gz

Mysql:

mysql-4.1.7-rc.tar.gz

开始构建完整的 PHP 运行的环境,我们以全新安装的 RedHatAs4 updata4 操作系统环境为例。

首先使用“rpm –qa|grep 包名称”检查Linux AS4 是否有自带的Mysql和Apache,如果有则使用“rpm –e 安装包名称”卸载掉

首先编译安装Apache httpd server

# tar zxvf httpd-2.0.52.tar.gz

# cd httpd-2.0.52

# ./configure --prefix=/usr/local/apache2  --enable-so --with-rewrite

# make &amp;&amp; make install

第二步安装 PHP+GD 等所需的支持插件

编译安装libxml

# tar zxvf libxml2-2.6.32.tar.gz

# cd libxml2-2.6.32.tar.gz

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

编译安装zlib

# tar zxvf zlib-1.2.3.tar.gz

# cd zlib-1.2.3

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

编译安装jpeg

# tar -zxf jpegsrc.v6b.tar.gz

# cd jpeg-6b/

mkdir /usr/local/jpeg

mkdir /usr/local/jpeg/include

mkdir /usr/local/jpeg/bin

mkdir /usr/local/jpeg/lib

mkdir /usr/local/jpeg/man

mkdir /usr/local/jpeg/man1

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

 ( 该版本的 jpeg 在实际安装过程中,make install 的时候会出现好几个找不到目录,或目录不存在的 error 。只需按照提示人手创建缺失目录,然后再令其 make install 直到无任何错误提示且顺利完成为止。 )

编译安装 libpng

# tar zxvf libpng-1.2.18.tar.gz

# cd libpng-1.2.18.tar.gz

#cp scripts/makefile.linux mskefile

#./configure --disable-shared --prefix=/usr/local/libpng2/

编译安装 freetype

# tar zxvf freetype-2.1.9.tar.gz

# cd freetype-2.1.9

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

编译安装 libart_lgpl

# tar zxvf libart_lgpl-2.3.17.tar.gz

# cd ibart_lgpl-2.3.17

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

编译安装fontconfig

#tar –zxvf fontconfig-2.4.2.tar.gz

cd fontconfig-2.4.2

make &amp;&amp; make install

编译安装 gettext

# tar zxvf gettext-0.16.1.tar.gz

# cd gettext-0.16.1

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

编译安装 gd 库 :

# tar zxvf gd-2.0.35.tar.gz

# cd gd-2.0.35

# ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype2/ --with-libart=/usr/local/libart/ --with-gettext=/usr/local/gettext/ --with-libxml=/usr/local/libxml2

编译安装 Curl 支持

# tar zxvf curl-7.15.3.tar.gz

# cd curl-7.15.3

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

编译安装 PHP

# tar zxvf php-4.3.9.tar.gz

# cd php-4.3.9

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache26/bin/apxs

--with-mysql=/usr/local/mysql

--with-jpeg-dir=/usr/local/jpeg

--with-png-dir=/usr

--with-gd=/usr/local/gd2/ --enable-gd-native-ttf –-with-ttf –-enable-gd-jis-conv

--with-freetype-dir=/usr/local/freetype2/ --with-zlib-dir=/usr/local/zlib2/ 

--with-curl=/usr/local/curl

--with-gettext=/usr/local/gettext –-enable-xml –-enable-mbstring –-enable-sockets

以上安装PHP的时候如果出现提示有的文件找不到,那么是路径设置有问题,只要重新设置路径就好了。

# cp php.ini-dist /usr/local/php/lib/php.ini ( 拷贝 PHP 配置文件至安装目录 )

# vi /usr/local/apach26/conf/httpd.conf ( 修改 apache 配置文件并加载 PHP 支持 )

ln –s /usr/local/php/bin/* /usr/local/bin/

要改的有如下几处

一般都在 #AddType application/x-gzip .gz .tgz 下加一行 :

AddType application /x-tar .tgz

AddType application/x-httpd-php .php

 AddType image/x-icon .ico

请把上面的 # 号去掉,还有找到

DirectoryIndex index.html index.html.var

在后面加 index.php 让它把 index.php 做为默认页

DirectoryIndex index.php index.html index.html.var

保存 httpd.conf 文件 .

如果没有出错 , 写一个测试页放到你网页目录下 . 访问就应该可以看到 php 的版本等信息了 !

#vi /usr/local/apache2/htdocs/test.php

&lt;?php

Phpinfo();

?&gt;

:wq(保存退出)

启动 apache

# /usr/local/apache2/bin/apachectl start

编辑apache开机启动,

#vi /etc/rc.d/rc.local

添加:/usr/local/apache2/bin/apachectl –k start

对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      //支持套接字

       安装MYSQL

# groupadd mysql

# useradd -g mysql mysql

 # tar zxvf mysql-5.1.24-rc.tar.gz

 # cd mysql-5.1.24-rc

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

 --localstatedir=/data/mysql ( 指定数据文件目录 )

--without-innodb --without-debug --with-extra-charsets=gbk

 --with-extra-charsets=all --enable-assembler --with-pthread

 --enable-thread-safe-client --with-client-ldflags=-all-static

 # make &amp;&amp; make install

 # cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld ( 复制 Mysql 启动服务至系统 )

#chkconfig –add mysqld

 # chmod 777 /etc/init.d/mysql            ( 赐予可执行权限 )

 # chown mysql:mysql /data/mysql ( 设置数据文件目录属性 )

设置数据文件目录属性这一步相当重要,许多朋友第一次使用 tar 包安装 Mysql 的时候就因该目录权限问题导致 Mysql 无法启动。相当头大 .

# /usr/local/mysql/bin/mysql_install_db        ( 初始化数据库 )

 # service mysql start                          ( 启动 Mysql)

 # /usr/local/mysql/bin/mysqladmin -u root -p password 'xxxxx' ( 设置管理员密码 xxx 默认值为空 )

好了,至此 mysql 安装完毕 .

以上是编译安装的

搭建 mysql 数据库: 

创建 mysql 用户和用户组 

# groupadd -g 200 mysql 

# useradd -u 200 -g mysql -d /usr/local/mysql/data -M mysql 

# id mysql 

uid=200(mysql) gid=200(mysql) groups=200(mysql) 

解压缩 mysql 数据库文件 

# tar zxvf mysql-standard-4.1.7-pc-linux-i686.tar.gz -C /usr/local/ 

# cd /usr/local/ 

# ls 

apache2  etc    include  libexec                             sbin   src 

bin      games  lib       mysql-standard-4.1.7-pc-linux-i686  share 

# ln -s mysql-standard-4.1.7-pc-linux-i686 mysql 

# cd mysql 

bin        docs               lib         scripts        tests 

configure  EXCEPTIONS-CLIENT  man         share 

COPYING    include            mysql-test  sql-bench 

data        INSTALL-BINARY     README      support-files 

建立用到的库文件并更改权限 

# mkdir /var/lib/mysql 

# chown -R mysql:mysql /var/lib/mysql/ 

# chown -R mysql:mysql /usr/local/mysql-standard-4.1.7-pc-linux-i686/ 

创建 mysql 数据库的配置文件 

# cd /usr/local/mysql 

# cp support-files/my-medium.cnf      /etc/my.cnf 

cd /usr/local/mysql 

]# ls 

bin        docs               lib          scripts         tests 

data       INSTALL-BINARY     README      support-files 

# ./scripts/mysql_install_db 

更改初始化数据库产生的家目录文件 

# cd /usr/local/mysql/data/ 

# ll 

-rw-rw----  1 root  root   8835 Jun 24 11:17 cisco-bin.000001 

-rw-rw----    1 root    root    69239 Jun 24 11:17 cisco-bin.000002 

-rw-rw----  1 root  root     38 Jun 24 11:17 cisco-bin.index 

drwxr-x---    2 mysql mysql    4096 Jun 24 11:17 mysql 

drwxr-x---  2 mysql mysql  4096 Oct 24  2004 test 

[root@cisco data]# chown -R mysql:mysql /usr/local/mysql/data/ 

[root@cisco data]# ll 

-rw-rw----    1 mysql mysql    8835 Jun 24 11:17 cisco-bin.000001 

-rw-rw----    1 mysql mysql 69239 Jun 24 11:17 cisco-bin.000002 

-rw-rw----  1 mysql mysql    38 Jun 24 11:17 cisco-bin.index

启动 mysql 数据库 

# /usr/local/mysql/bin/safe_mysqld --user=mysql &amp; 

# Starting mysqld daemon with databases from /usr/local/mysql/data 

 给数据库管理员设定密码,并登陆数据库,创建一个新数据库 

# /usr/local/mysql/bin/mysqladmin -u root password '123' 

# /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 2 to server version: 4.1.7-standard-log 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql&gt; show databases; 

+----------+ 

| Database | 

| mysql     | 

2 rows in set (0.00 sec) 

mysql&gt; create database cacti;

Query OK, 1 row affected (0.00 sec) 

 mysql&gt; show databases; 

| mysql    | 

| phpbb    | 

| test     | 

3 rows in set (0.00 sec) 

 mysql&gt; exit

这样构建 Cacit 运行的 PHP+Mysql 环境就基本上完成了。

下边开始安装 Cacit 所需要的 rrdtools 图形工具以及 snmp 工具

编译安装 rrdtool

# tar zxvf rrdtool-1.0.50.tar

 # cd rrdtool-1.0.50

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

Rrdtool 1.0版本的自带GD库文件,安装简单方便,但是1.2版本的就没有自带,所以安装比较复杂

1.2版本的安装方法稍后介绍

<b>安装</b><b>net-snmp</b><b>安装包(使用系统自带的就</b><b>OK</b><b>)</b>

安装 net-snmp、snmpwalk 和 snmpget 命令

 # rpm -qa | grep net-snmp   ( 查看系统中有否已经装有所需的软件 )

 net-snmp-5.0.9-2.30E.15

 net-snmp-devel-5.0.9-2.30E.15

 net-snmp-libs-5.0.9-2.30E.15

 net-snmp-utils-5.0.9-2.30E.15

没有或者缺少的话都需要逐一安装上。

而且还很有可能会因 rpm 的依存关系无法顺利安装,须使用 - - nodeps 参数。

以上所需的 rpm 安装包都能在 RedHatAs4 安装光盘上找到 .

<a>安装配置</a>

至此,Cacti 所需的运行环境都已经准备好了,接下来开始进行安装以及配置。

稍微修改系统中 snmp 的配置

# vi /etc/snmp/snmpd.conf

      com2sec      notConfigUser    default    public

改为: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

将前面的 # 注释 去掉。

保存退出 :wq

重新启动 snmp 服务

使用ntsysv,让snmp服务,每次开机自动运行。

# service snmpd restart

安装 / 配置 cacti

# 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 = "123456";

//添加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 &gt; /dev/null 2&gt;&amp;1

注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。

安装Cactid

CACTID 的安装需要以下支持:

net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项)

mysql              

mysql-devel     (mysql源文件编译安装后默认支持)

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.1

DB_Database     cacti

DB_User         cacti

DB_Pass         cacti

5.数据库配置

#mysql –uroot –p

Password:

Query OK, 1 row affected (0.00 sec)

mysql&gt; grant all on cacti.* to cacti@localhost identified by “cacti”;

mysql&gt; grant all on cacti.* to root;

mysql&gt; grant all on cacti.* to root@localhost;

mysql&gt; grant all on cacti.* to cacti@localhost;

mysql&gt;exit

# cd /usr/local/apache/htdocs/cacti

# mysql –uroot –p cacti &lt; cacti.sql

未完待续........

     本文转自 wqmsl 51CTO博客,原文链接:http://blog.51cto.com/wqmsl/309756,如需转载请自行联系原作者