廣告贊助

RRDtool 是原 MRTG 作者另外開發的套件,它可將系統吐出來的資料做 logging 並繪製成圖表

而系統所吐出來的資料是 based on SNMP ( Simple Network Management Protocol ),所以只要是支援 SNMP 的設備都可以用 RRDtool 來做記錄與分析

不過仔細看了一下 RRDtool 操作的語法算小複雜,因此本篇教學會再搭配 Cacti 來協助控制 RRDtool 繪製報表

我的安裝環境如下

[ 安裝所需套件 ]

首先我們先安裝 RRDtool

# cd /usr/ports/databases/rrdtool
# make install clean

接下來安裝 Net-SNMP,因為 Cacti 需利用 Net-SNMP 裡的 snmpwalk 和 snmpget 這二個指令進行資料採集,所以這個是必裝的

# cd /usr/ports/net-mgmt/net-snmp
# make install clean

最後安裝 Cacti

# cd /usr/ports/net-mgmt/cacti
# make install clean

上述三個套件安裝完之後,就可以開始來設定囉!

[ 設定 SNMP ]

首先先來設定 SNMP 的部份

# cd /usr/local/share/snmp
# vi snmpd.conf

snmpd.conf 內容如下

rocommunity MySNMP  // 設定 SNMP Read-Only 的 Community
syslocation MyOffice  // 系統所在地
syscontact bojack@gmail.com  // 管理者 E-mail

另外請在 /etc/rc.conf 加入一行 snmpd_enable="YES"

加好了之後就來啟動 SNMP 吧

# /usr/local/etc/rc.d/snmpd start

[ 設定 Cacti ]

設定 Cacti 這部份看個人習慣,如果您已經有 phpMyAdmin 的話可以在裡面操作,或是透過指令方式來新建

原則上我們需要新建一個 Database、User 讓 Cacti 可以存放相關資料

指令操作如下,新增一個 Database 名稱為 cacti

# mysqladmin -u root -p create cacti
Enter password: 輸入 Root 的密碼

新增一個 User 名叫 cacti 讓它可以存取 cacti 這個 Database,密碼設定為 justforcacti

# mysql -u root -p
Enter password: 輸入 Root 的密碼
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.92-log FreeBSD port: mysql-server-5.0.92

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'justforcacti';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

接下來我們要倒入 Database 相關的 Schema

# mysql -u cacti -p cacti < /usr/local/share/cacti/cacti.sql
Enter password: 以本教學為例輸入 justforcacti

Database 的 Schema 建好之後,接下來我們來去設定程式的部份

# cd /usr/local/share/cacti/include/
# vi config.php

config.php 內容如下,原則上要改的地方就只有 username 跟 password 而已

/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "justforcacti";
$database_port = "3306";

/* Default session name - Session name must contain alpha characters */
#$cacti_session_name = "Cacti";

接下來新增排程設定,固定每 5 分鐘讓 Cacti 去取得資料

# crontab -u cacti -e

加入這一行即可

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

接下來我們要在 Apache 裡面設定 Cacti 的路徑

# vi /usr/local/etc/apache22/httpd.conf

在 httpd.conf 加入下面這幾行

Alias /cacti "/usr/local/share/cacti/"
<Directory "/usr/local/share/cacti/">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

好了之後要重新啟動 Apache 讓它生效

# /usr/local/etc/rc.d/apache22 restart

[ 初始化 Cacti ]

網址列請打入 http://您的 IP or Domain/cacti,連結成功後第一次應該會有個初始化的動作,直接 Next

由於我們是新安裝,所以請選 New Install

這一頁原則上請確認相關會用到的程式都是 [OK: FILE FOUND] 的情況就可以按 FINISH 了

最後會到登入的頁面,預設的帳號密碼是 admin,密碼也是 admin

第一次登入時會強制要求改密碼

[ 新增一台監控設備 ]

來為我們的系統新增一台要監看的設備吧,我是選了一台 Cisco 6509 ~ 咱們家的 Core Router

選擇畫面中的 Create devices for network

點選上方 Device 右邊的 Add

這次是新增一台 Cisco Router 6509,依序填入相關的資訊

新增成功後系統就會透過 SNMP 相關指令去截取一些資訊回來,接下來我們點選右邊的 Create Graphs for this Host

要產生的圖片分二種,一種是系統已訂好的樣版,另一種是透過 SNMP 產生的資訊,我想先監看 6509 往防火牆的那個介面

因此選擇下方的 SNMP - Interface Statistics

勾選我想看的 GigabitEthernet Gi7/1  介面,右下角選 In/Out Bytes with Total Bandwidth 後按 Create

新增好之後點選左邊的 Graph Management 就可以看到我們剛才新增的圖表,可以點選進去修改一下

修改一下 Title 的部份為 Cisco 6509 往防火牆,好了之後按 Save

點選上面的 graphs 後可以看到總共有右邊三個類型可選,Tree View、List View及Preview View

點選左上方的圖進去後就可以看到 Cisco 6509 往防火牆的流量

這時應該會發現中文字怎麼都不見了吶!

這問題困擾了我一個下午,原則上解決的問題非常非常簡單,Cacti 或 RRDtool 什麼都不用改

就只是 FreeBSD 裡面沒有中文字型罷了,所以就去 Ports  裡面裝就解決了

# cd /usr/ports/chinese/font-std
# make install clean

至於 Cacti 還有一些外掛可以裝,就請自行連過去看看囉

參考資料

[1]  不自量力的 Weithenn - RRDTool-各項數據流量統計

http://pic.pimg.tw/bojack/1314597229-3861575183_m.png
創作者介紹

有為青年生活札記

bojack 發表在 痞客邦 PIXNET 留言(0) 人氣()