Linux下cacti的安裝

        Cacti安裝手冊php

            第一步、  Cacti的架構html

  

 

            第二步、 Cacti的工做流程python

 

  

 

          第三步、 Cacti簡介mysql

1. cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,而後用rrdtool儲存和更新數據,當用戶須要查看數據的時候用rrdtool生成圖表呈現給用戶。所以,snmp和rrdtool是cacti的關鍵。Snmp關係着數據的收集,rrdtool關係着數據存儲和圖表的生成。web

 

2. Mysql配合PHP程序存儲一些變量數據並對變量數據的調用如:主機名、主機ip、snmp團體名、端口號、模板信息等變量。sql

 

3. snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。另外,當生成圖片時對採集的數據的處理方式:有gauge、counter、derive、absolute。參考如下例子:
類型:若是輸入數據依序爲 98 100 98: 數據庫

GAUGE(個別值,像CPU loading):產生圖形時畫 98 100 98 apache

COUNTER (累計值,像流量資料):產生圖形時畫 2 -2 網絡

DERIVE (累計值,像流量資料),小於0畫0:產生圖形時畫 2 0 架構

ABSOLUTE 如同 COUNTER,但 COUNTER 可能 overflow(數值過大),因此會取絕對值
     補充說明,COUNTER/DERIVE/AVSOLVTE 雖是取差值,但會再除以兩次間隔間的秒數,如上 COUNTER 例,兩次間隔間爲 300 秒,那畫出來的就是 2/300,-2/300 的值

 

數據採集中能夠看到定義的是什麼數據類型:Counter和gauge

C:\usr\bin>snmpget -v 2c -c public 192.168.224.1 .1.3.6.1.2.1.6.5.0

TCP-MIB::tcpActiveOpens.0 = Counter32: 1927

 

C:\usr\bin>snmpget -v 2c -c public 192.168.224.1 .1.3.6.1.2.1.6.9.0

TCP-MIB::tcpCurrEstab.0 = Gauge32: 0

 

4. rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(Round Robin Archive),它可以存儲的數據筆數在建立時就已經定義。

[root@localhost rra]# ls 220_181_11_156_mem_*

220_181_11_156_mem_buffers_30.rrd 220_181_11_156_mem_cache_31.rrd 220_181_11_156_mem_free_32.rrd

(能夠看出一個圖形對應好幾個rrd文件---即對應幾個數據源---但也能夠一個rrd文件包含幾個數據源)

具體RRDTool的知識見如下網頁:

使用Cacti監測系統與網絡性能:

http://hi.baidu.com/myfreezone/blog/item/7f00fd247d2411338744f9c3.html

RRDTool應用示例:

http://hi.baidu.com/myfreezone/blog/item/4720f0f280538e13b07ec5c1.html

對RRDTool的總結

http://hi.baidu.com/myfreezone/blog/item/18973aad8ad66b094b36d6f8.html

 

安裝rrdtool

http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.2.11.tar.gz

因爲rrdtool1.2.11須要一些庫文件支持,故需先安裝配置支持的環境,而後編譯安裝。直接運行如下sh腳步就能夠完成安裝:

 注意:將cgilib-0.5.tar.gz、zlib-1.2.2.tar.gz、libpng-1.2.8-config.tar.gz、freetype-2.1.9.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.11.tar.gz放到/root/rrdtool-1.2.11

將腳本保存爲/root/rrdtool-1.2.11/rrdtoolinstall,並給執行權限chmod 766 /root/rrdtool-1.2.11/rrdtoolinstall。

#!/bin/sh

BUILD_DIR=/root/rrdtool-1.2.11

INSTALL_DIR=/usr/local/rrdtool

cd $BUILD_DIR

tar zxf cgilib-0.5.tar.gz

cd cgilib-0.5

make CC=gcc CFLAGS="-O3 -fPIC -I."

mkdir -p $BUILD_DIR/lb/include

cp *.h $BUILD_DIR/lb/include

mkdir -p $BUILD_DIR/lb/lib

cp libcgi* $BUILD_DIR/lb/lib

cd $BUILD_DIR

tar zxf zlib-1.2.2.tar.gz

cd zlib-1.2.2

env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb

make

make install

cd $BUILD_DIR

tar zxvf libpng-1.2.8-config.tar.gz

cd libpng-1.2.8-config

env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \

    ./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

cd $BUILD_DIR

tar zxvf freetype-2.1.9.tar.gz

cd freetype-2.1.9

env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \

    ./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

 

cd $BUILD_DIR

tar zxvf libart_lgpl-2.3.17.tar.gz

cd libart_lgpl-2.3.17

env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

 

IR=-I$BUILD_DIR/lb/include

CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"

LDFLAGS="-L$BUILD_DIR/lb/lib"

CFLAGS=-O3

export CPPFLAGS LDFLAGS CFLAGS

 

cd $BUILD_DIR

tar zxf rrdtool-1.2.11.tar.gz

cd rrdtool-1.2.11

./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl && make && make install

 

E.安裝net-snmp

Unix系統安裝的都是net-snmp或ucd-snmp(其實兩個都是同一組人寫的)。若是沒有安裝snmp,能夠到net-snmp.sourceforge.org上下載源碼編譯安裝。 

 

我這裏說的安裝SNMP服務並非要求安裝SNMPD,實際上是Cacti須要用到net-snmp中的兩個命令――snmpwalk和snmpget進行數據的採集。咱們能夠直接在系統中運行snmpwalk和snmpget看是否有該命令,若是有則不用安裝了。

http://prdownloads.sourceforge.net/net-snmp/net-snmp-5.2.1.1.tar.gz

# tar zxf net-snmp-5.2.1.1.tar.gz

# cd net-snmp-5.2.1.1

#./configure --prefix=/usr/local/net-snmp --enable-developer

# make

# make install

 

安裝cacti 

http://www.cacti.net/downloads/cacti-0.8.6f.tar.gz

# cp cacti-0.8.6f.tar.gz /usr/local/http/htdocs/

# cd /usr/local/http/htdocs/

# tar zxvf cacti-0.8.6f.tar.gz

# mv cacti-0.8.6f cacti 

 

安裝cacti-cactid

http://www.cacti.net/downloads/cactid/cacti-cactid-0.8.6f-1.tar.gz

CACTID 的安裝須要如下支持:

· net-snmp-devel   (須要編譯安裝net-snmp時添加--enable-developer選項) 

· mysql                

· mysql-devel       (mysql源文件編譯安裝後默認支持) 

· openssl-devel     (redhat9.0默認安裝) 

 

所以須要檢查是否具有安裝的環境。

# tar zxf cacti-cactid-0.8.6f-1.tar.gz       

# cd cactid0.8.6-f1

# ./configure ;make   

這是此目錄下你將看到cactid 和cactid.conf

# mkdir  /usr/local/cactid

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

 

H.安裝完成後配置cacti

1.配置apache

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

加入 AddType application/x-tar .tgz 

        AddType application/x-httpd-php .php 

        AddType image/x-icon .ico 

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

# /usr/local/http/bin/apachectl stop

# /usr/local/http/bin/apachectl start

編輯測試php文件 test.php內容以下:

<?

phpinfo();

?>

 

2.配置mysql

創建cacti需用的數據庫

# /usr/local/mysql/bin/mysql

mysql> create database cactidb; 

Query OK, 1 row affected (0.00 sec) 

 

mysql> grant all on cactidb.* to root; 

Query OK, 0 rows affected (0.01 sec) 

 

mysql> grant all on cactidb.* to root@localhost; 

Query OK, 0 rows affected (0.01 sec) 

 

mysql> grant all on cactidb.* to cactiuser; 

Query OK, 0 rows affected (0.00 sec) 

 

mysql> grant all on cactidb.* to cactiuser@localhost; 

Query OK, 0 rows affected (0.01 sec) 

 

mysql> set password for cactiuser@localhost=password('cactipw'); 

Query OK, 0 rows affected (0.00 sec) 

 

mysql> exit

# cd /usr/local/http/htdocs/cacti

# /usr/local/mysql/bin/mysql –u root cactidb < cacti.sql 

 

3.配置cacti-cactid

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

DB_Host         localhost

DB_Database     cactidb

DB_User         cactiuser

DB_Pass         cactipw

 

4.配置cacti

# useradd cactiuser

# chown –R cactiuser rra/

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

$database_type = "mysql";

$database_default = "cactidb";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactipw";

 

爲cactiuser建立crontab

*/5 * * * * /usr/local/bin/php /usr/local/http/htdocs/cacti/poller.php > /dev/null 2>&1

 

5.完成配置

http://IP/cacti開始配置

默認用戶名密碼admin/admin

更改默認密碼

設定

snmpwalk Binary Path             /usr/local/net-snmp/bin/snmpwalk

snmpget Binary Path               /usr/local/net-snmp/bin/snmpget

RRDTool Binary Path                /usr/local/rrdtool/bin/rrdtool

PHP Binary Path                       /usr/local/bin/php

Cacti Log File Path                   /usr/local/httpd/htdocs/cacti/log/cacti.log

Cactid Poller File Path                    /usr/local/cactid/cactid

另外,進入cacti後需確認更改一下位置:(以下圖)

Console>Settings>General

 

Console>Settings>Poller

相關文章
相關標籤/搜索