星期五, 8月 31, 2007

利用 cacti 及 RRDTool 來監看網路狀況


Wkzone 的cacti

http://wkzone.net/cacti

username : guest
password : guest

透過 cacti 這套用 PHP 開發的程式來監看網路環境,可以取代原本用 MRTG 的缺點,cacti 是透過 RRDTool 來做圖的,開發 RRDTool 這個工具的作者也就是原本開發 MRTG 的作者,不過 RRDTool 艱澀的語法表示實在是很難入門,所以就有熱心的人寫出了 cacti 這個管理的介面,可以幫助使用者設定複雜的 RRDTool 設定檔,對於網管來說,實在是個很方便、也很值得利用的工具。

如果有用 yum 來安裝套件的話,那要把 cacti 跟 RRDTool 安裝起來實在是再簡單也不過了,不過首先得先加入一個可供 yum 參考的 Repository - DAG !

> vi /etc/yum.repos.d/dag.repo

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=0
enabled=1

建議在要安裝這些套件以前,先將 crond 的服務停止,才不會到時候 cacti 安裝好,設定都還不正確, cacti 就跑起來了。

再來就是檢查一下一些必備的程式安裝了沒:

httpd : 網頁伺服器是一定要裝的嘛,不然怎麼看呢
mysqld : 存放紀錄的地方,cacti 就是好在這個地方
phpmyadmin : 方便管理 MySQL
PHP-mbstring : 為了讓 MySQL 相容於雙位元的中文字
crontabs : 要讓 cacti 定時送出 snmp query 並且做圖、寫回資料庫等等動作
net-snmp : 用 snmp 協定跟被監控的機器溝通
net-snmp-utils : 像是 snmpwalk、snmpget之類的指令
net-snmp-perl : 有些外掛是用 Perl 寫的,所以這個套件也需要
perl-Net-SNMP : 同上

接著就是必備的核心了:

rrdtool
PHP-rrdtool
perl-rrdtool

以上皆可用 yum 來 check 安裝了沒,或是有無更新。都安裝完成了之後,接著就可以安裝 cacti 了:

cacti : 主要的程式,包括後台網站、以及一些外掛程式,還有一隻用 PHP 的方式執行的 poller 。
cacti-cactid : 利用 C 所開發的一隻 daemon,如果你覺得你每五分鐘要監看的目標太多了,怕五分鐘跑不完,可以考慮試著換成用 daemon 的方式來跑,效能快很多。

裝完 cacti 後,要記得 httpd 要重新啟動,因為預設的 cacti 網站設定寫在 /etc/httpd/conf.d/cacti.conf 中,要讓 httpd 重新載入。另外,預設的設定值只允許127.0.0.1存取,所以我們要來改變一下設定,看是要改成:

allow from all

或是可以加入多個子網段:

allow from all 192.168.1.0/24 192.168.2.0/24

然後別忘記改完之後要重新啟動 httpd。

重新啟動後,就可以連上網站看看囉~

oops….

Error

You have created a new database, but have not yet imported the 'cacti.sql' file. At the command line, execute the following to continue:

mysql -u cactiuser -p cacti <> 進入mysql 建立Cacti 的DB
以下步驟為建立root & cactiuser的mysql密碼以及建立 cactidb 並指派權限與使用者
mysql> set password for root@localhost=password('rootpw');
mysql> create database cacti;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to root@localhost;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to cactiuser@localhost;
mysql> set password for cactiuser@localhost=password('cactipw');
mysql> exit


如果網站畫面還是一樣的錯誤,那是因為我們還得去修改 includes/config.php 這個設定檔,把密碼改為原本建立時所設定的密碼,重新載入網頁後,就會出現第一次安裝的畫面了,按照安裝步驟的指引一步一步的完成設定就 ok 了,最後會來到登入的畫面,預設管理者帳號為 admin ,密碼也是 admin,登入後會強制要求更改密碼,做到這個階段,大致上完成了。

最後,我們要檢查每五分鐘的排程是否正確。

一開始我們用 yum 來安裝 cacti 的時候,系統會自動幫我們產生一個 cron 的設定,設定檔放在 /etc/cron.d/cacti,設定檔內容如下:

*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null

預設是由 cacti 這個 user 來 run 這個工作,不過我覺得還要建立 user 很麻煩,所以都直接把這裏改為由 root 來執行,另外也要確認一下 rra/ 及 log/ 這兩個目錄的擁有者是否依然為 root (網路上的教學設定都是說要由 cactiuser ,反正就是 root 以外的角色來做 crontab 的工作,所以這兩個目錄的 owner 必須跟做 crontab 同一人,不過我這樣設定也 ok 哩,所以就沒深入去探討了)

都 ok 了之後,就可以讓 crond 起來了,順便可以進去 cacti 後台新增要監測的設備、主機等等,也可以查看記錄檔,看是不是有什麼地方有錯誤、或是安裝的外掛程式有問題。

晚點有空再來寫寫 cactid 的安裝及注意事項,還有分享一些有用的外掛監看程式。



更多短片在 wkzone

沒有留言: