<b>cacti的安裝使用(RHEL5.3)</b>
<b>一、cacti的簡介</b>
網絡管理(如主機負載、網絡流量等的監控)是系統管理崗從業人員日常工作的一個重要組成部分,許多廠商為此提供了各自的解決方案。早期開源網管軟體中比較著名的其中之一的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工作流程:
<b>二、cacti依賴的軟體包</b>
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);
在本示例中,各軟體包盡量以系統CD光牒提供的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源,則挂載系統安裝CD光牒,使用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
為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
<b>三、所需系統環境的配置</b>
(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
<b>四、安裝設定cact</b><b>i</b>
(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主機的工作情況。
<b>五、安裝cacti-spine (非必需)</b>
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
(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”選項。
<b>六、使用cacti監控Windows Server 2003</b>
(1)首先要監控的Windows 系統上安裝SNMP元件,這可以通過“添加/删除面闆”中的“添加/删除元件”進行。
(2)為SNMP服務元件指定接收SNMP消息的位址為cacti伺服器,同時為其commutity指定正确的名稱。這裡要跟net-snmp配置檔案中的設定保持一緻,預設為public,在實際使用中建議修改此項。
(3)在cacti的控制台中,按照“create device”的向導添加裝置即可。
<b>參考文獻:</b>
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