RRDtool 是原 MRTG 作者另外開發的套件,它可將系統吐出來的資料做 logging 並繪製成圖表
而系統所吐出來的資料是 based on SNMP ( Simple Network Management Protocol ),所以只要是支援 SNMP 的設備都可以用 RRDtool 來做記錄與分析
不過仔細看了一下 RRDtool 操作的語法算小複雜,因此本篇教學會再搭配 Cacti 來協助控制 RRDtool 繪製報表
我的安裝環境如下
- FreeBSD 8.2 Release
- Apache + PHP + MySQL ( 可參考 【FreeBSD】用 Ports 安裝 Apache + PHP + MySQL )
- Net-SNMP 5.7
- RRDTool 1.4.5
- Cacti 0.8.7g
[ 安裝所需套件 ]
首先我們先安裝 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
# 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
參考資料
[1] 不自量力的 Weithenn - RRDTool-各項數據流量統計
