CACTI


cacti的安裝使用(RHEL5.3)
一、cacti的簡介

網絡管理(如主機負載、網絡流量等的監控)是系統管理崗工作人員日常工作的一個重要組成部分,許多廠商爲此提供了各自的解決方案。早期開源網管軟件中比較著名的其中之一的MRTG,是一款使用perl開發的,通過SNMP協議實現管理工作站與設備代理進程間的通訊,以完成對設備的管理和運行狀態的監視。MRTG安裝配置簡單、圖形界面直觀,因爲廣受當時網絡管理人員的喜愛,也爲筆者早期的網絡管理工作立下了汗馬功勞。

但MRTG也有許多固有的缺點,如:使用文本式的數據庫,數據不能重複使用;只能按日、周、月、年來查看數據;每圖只能畫兩個DS(一條線、一個塊);每取一次數據即需要繪圖一次,浪費系統資源;同時,它也沒有提供管理功能。

有鑑於此,MRTG的作者後來另外又開發了一個工具,即rrdtool。rrdtool是一個性能優良的數據記錄器,同時也是一個功能強大的繪圖引擎。它使用rrd的數據存儲格式,使用得數據可以重複使用;在繪圖方面,它可以定義任意時間段進行繪圖,能繪出多個DS。但它也有自己的缺點:雖然提供了強大的數據存儲及繪圖功能,但rrdtool卻沒有提供類似於MRTG中集成的數據採集功能;同時,它提供了過多的參數,以至於在命令行界面使用起來極爲不便;此外,rrdtool也沒有提供管理功能。於是cacti應運而生。


簡單來說,Cacti就是rrdtool的一個forefront,它內置了快速的獲數據取工具、優秀的繪圖模板以及許多設計精良的數據獲取腳本,從而可以通過結合rrdtool強大的數據抓取、數據存儲和繪圖功能,輕鬆實現主機負載、網絡流量等信息的走勢圖的繪製。目前其最新的軟件版本是0.8.7e。

cacti是用php語言實現的一個軟件,它的運行需要網站服務器(如apache)及PHP環境的支持。同時,cacti還需要Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ip、snmp團體名、端口號、模板信息等變量。

rrdtool的對主機負載、網絡流量等信息的統計需要通過SNMP協議實現。經過SNMP抓取到的數據存儲於由rrdtool生成的rrd文件中,這些文件通常位於cacti的rra目錄中。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的歸檔文件(Round Robin Archive),它能夠存儲的數據筆數在創建時就已經定義。

cacti各組件的功能:

cacti工作流程:

二、cacti依賴的軟件包

1、關於依賴關係的說明

RRDTool 1.0.49 or 1.2.x 或以上的版本;
MySQL 4.1.x or 5.x 或以上的版本;
PHP 4.3.6 及以上版本; 推薦建議使用5.x系列版本,這爲cacti的高級功能所需要;
Apache(或Windows平臺的ISS);

在本示例中,各軟件包儘量以系統光盤提供的rpm包爲主,而rrdtool則使用源碼包。其需要安裝的rpm包如下:

php-5.1.6-23.el5
php-mysql-5.1.6-23.el5
php-gd-5.1.6-23.el5
php-snmp-5.1.6-23.el5
php-pdo-5.1.6-23.el5

mysql-5.0.45-7.el5
mysql-devel-5.0.45-7.el5
mysql-server-5.0.45-7.el5

httpd-2.2.3-22.el5

net-snmp-libs-5.3.2.2-5.el5
net-snmp-5.3.2.2-5.el5
net-snmp-utils-5.3.2.2-5.el5

libart_lgpl-2.3.17-4
libart_lgpl-devel-2.3.17-4

關於rrdtool的安裝本文中使用rrdtool-1.2.30.tar.gz,同時,它需要用到pango-1.7.5以上版本的支持,因此,還需要事先更新系統中的pango軟件包。

2、上述軟件包的安裝

(1)rpm格式的軟件包

rpm系列軟件包的安裝建議採用yum方式進行安裝,這可在使用如下方式命令實現:
# yum install package_name,[p2,…]

如果沒有合適的yum源,則掛載系統安裝光盤,使用rpm的安裝命令安裝即可,安裝可以使用如下方式實現:
# rpm -ivh package

(2)安裝源碼包

(i)pango-1.17.5
# tar jxvf pango-1.17.5.tar.bz2

# cd pango-1.17.5
# ./configure
# make
# make install

(ii)rrdtool-1.2.30
# tar zxvf rrdtool-1.2.30.tar.gz 
# cd rrdtool-1.2.30
# ./configure --prefix=/usr/local/rrdtool
# make
# make install

爲rrdtool的二進制文件創建鏈接至/usr/local/bin,cacti默認到這裏查找所需的rrdtool
# ln -s /usr/local/rrdtool/bin/* /usr/local/bin

將rrdtool的庫文件添加至系統庫文件搜索路徑:
# vi /etc/ld.so.conf
添加:
/usr/local/rrdtool/lib

#ldconfig -v

三、所需系統環境的配置

(1)配置php工作環境

首先需要確保php能夠加載所需的系統模塊,cacti所需要用到的php模塊有mysql、SNMP 、XML、Session、Sockets、LDAP(僅在使用LDAP認證時需要)、GD(某些插件可能用到)。/etc/php.ini文件中的如下選項可以保證php能夠加載到所需的模塊:
extension_dir = /usr/lib/php/modules


可以使用如下命令查看本機php已經打開的支持模塊:

# php -m

如果在以後的使用中需要導入cacti模板,這還需要確保在/etc/php.ini中打開了文件上傳的功能:
file_uploads = On

(2)配置httpd

默認情況下,打開httpd對php支持所需要的配置文件在/etc/httpd/conf.d/目錄中,所以,請確保您的httpd.conf文件中開啓了以下選項:
Include conf.d/*.conf

啓動httpd服務,並把它加入到自動啓動隊列(如果是第一次配置httpd):
# service httpd start
# chkconfig --level 2345 httpd on

(3)配置MySQL

首先啓動mysql,並將其加入到自動啓動服務隊列(如果是第一次配置MySQL):
# service mysqld start
# chkconfig --level 2345 mysqld on

接着爲root用戶添加密碼,爲了簡單起見,這裏使用“123456”,生產環境中應該使用強密碼。

# mysqladmin --user=root password '123456'

接着登錄mysql,創建cacti的數據庫,併爲其指定cactiuser用戶和密碼(123456)。數據庫名字可根據需要指定,這裏指定爲cactidb:

# mysql -uroot -p
mysql> create database cactidb;
mysql> GRANT all privileges ON cactidb.* TO cactiuser@localhost IDENTIFIED BY '123456';
mysql> flush privileges;

(4)配置SNMP

在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默認的community爲public,建議將public修改爲您需的密碼項。

接着,啓動snmp進程,並將其加入到自動啓動服務隊列(只在第一次配置時需要):
# service snmpd start
# chkconfig --level 2345 snmpd on

四、安裝設定cacti

(1)解壓cacti的壓縮包,並將其移至網站目錄中:
# tar zxvf cacti-0.8.7e.tar.gz
# mv cacti-0.8.7e  /var/www/html/cacti

說明:如果您的網站目錄在別處,這裏需要做相應的改變;同時,您也可以使用httpd的虛擬目錄,而不必要一定要將cacti目錄移至網站目錄;

(2)使用cacti提供的schema生成cacti所需要的表等對象:
# cd /var/www/html/cacti
# mysql -uroot -p cactidb < cacti.sql

(3)編輯cacti的主配置文件,爲其指定對應的數據庫參數:
# vi /var/www/html/cacti/include/config.php

將下列各參數的值修改爲您前面所設定的:
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "123456";
$database_port = "3306";

(4)添加運行cacti所需要的用戶帳號,並將運行時需要生成rrd文件和日誌文件的目錄權限賦予給它:
# useradd cactiuser
# passwd cactiuser

# chown -R cactiuser rra/ log/

(5)爲cacti用戶添加週期性任務,以實現所需數據的獲取:
# vi /etc/crontab
添加如下行:
*/5 * * * * cactiuser  php  /var/www/html/cacti/poller.php > /dev/null 2>&1

(6)進入安裝界面,開始安裝設定cacti
打開瀏覽器,在地址欄輸入如下地址,當安裝界面出現後,按照提示一步步安裝即可。
http://youIP/cacti

剛剛安裝成功時,cacti還沒有獲取到所需要的數據,因此,可能不會有圖表顯示。待過上五分鐘以上的一段時間,就會有關於本機負載情況的統計圖表出現了。如果要監控其它主機,請首先確保其它主機開啓中了SNMP服務,接着在cacti控制檯“device”中添加新設備,併爲其創建“New graph”即可。後文將演示如何監控Windows主機的工作情況。

五、安裝cacti-spine (非必需)

cacti-spine是一個用C語言開發的、用來替換默認的cmd.php的、能夠快速獲取數據的引擎。

(1)安裝

cacti-spine要用到mysql的頭文件,因此事先需要安裝mysql-devel包,如果是非rpm安裝,則需要在configure時使用--with-mysql選項指定mysql的安裝位置。

# tar zxvf cacti-spine-0.8.7e.tar.gz
# cd cacti-spine-0.8.7e
# aclocal
# libtoolize --force
# autoheader
# autoconf
# automake
# ./configure
# make
# make install

(2)設定

編輯其主配置文件/usr/local/spine/etc/spine.conf,確保其中的相關參數的值爲您需要的正確設置。
DB_Host         127.0.0.1   <--此處不能使用localhost
DB_Database     cactidb
DB_User         cactiuser
DB_Pass         123456
DB_Port         3306

(3)cacti設定
在cacti的控制檯界面,選擇settings進入設定頁面。

在“Paths”頁面中,爲“Spine Poller File Path”指定spine的詳細路徑,這裏爲“/usr/local/spine/bin/spine”。

在“Poller”頁面中,爲“Poller Type”選項選擇“spine”選項。

六、使用cacti監控Windows Server 2003

(1)首先要監控的Windows 系統上安裝SNMP組件,這可以通過“添加/刪除面板”中的“添加/刪除組件”進行。


(2)爲SNMP服務組件指定接收SNMP消息的地址爲cacti服務器,同時爲其commutity指定正確的名稱。這裏要跟net-snmp配置文件中的設定保持一致,默認爲public,在實際使用中建議修改此項。


(3)在cacti的控制檯中,按照“create device”的嚮導添加設備即可。


參考文獻:
http://docs.cacti.net/manual:087
http://blog.sina.com.cn/5istone
http://blog.chinaunix.net/u/26011/showart_409137.html
原文來自:http://blog.chinaunix.net/u/24866/showart_2020939.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章