天天看點

CACTI

<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

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&gt; create database cactidb;

mysql&gt; GRANT all privileges ON cactidb.* TO cactiuser@localhost IDENTIFIED BY '123456';

mysql&gt; 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 &lt; 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 &gt; /dev/null 2&gt;&amp;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   &lt;--此處不能使用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元件,這可以通過“添加/删除面闆”中的“添加/删除元件”進行。

CACTI

(2)為SNMP服務元件指定接收SNMP消息的位址為cacti伺服器,同時為其commutity指定正确的名稱。這裡要跟net-snmp配置檔案中的設定保持一緻,預設為public,在實際使用中建議修改此項。

CACTI

(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

上一篇: cacti

繼續閱讀