天天看點

(馬世龍)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 安裝CD光牒上找到 .

<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,如需轉載請自行聯系原作者