對網管人員來說,網路流量分析是網路管理相當重要的一環,目的是為了避免資源濫用 、有效發揮網路效能,和過濾和掌控可能因為病毒蠕蟲、垃圾郵件或入侵攻擊所導致的異常 流量以免癱瘓其他合法使用者網路服務等等。本文將介紹兩個知名好用的流量監測工具— MRTG與Cacti,供網管人員參考能更方便瞭解自己伺服器的網路流量。
MRTG
MRTG (Multi Router Traffic Grapher) 是一個年代久遠卻十分普遍好用的流量分析軟 體,繪圖介面簡單易懂,耗用資源的程度也低,主要可以偵測以下三種流量: 1. 網路卡整體流量 2. CPU 使用率 3. RAM 使用率
MRTG 是透過 SNMP(Simple Network Management Protocol,簡單網絡管理協議)向指定的 網路設備要求相關資料,每幾分鐘統計該設備之流量,將統計結果傳回給MRTG進行繪製,網管 人員即可輕易地由統計圖上觀察出實際的網路流量。SNMP 協議專門供給監測連接網路設備使 用,要使用 MRTG 必須支援 SNMP 協定及 perl 才行。以下範例是 FreeBSD 4.11 上的安裝步 驟,MRTG是一種跨平台軟體,可安裝在任何 Unix-like 的系統上,可以依自己的系統,找出 安裝套件的方式使用。
安裝步驟:
1.安裝 SNMP #cd /usr/ports/net-mgmt/net-snmp4 #make ; make install 值得注意的是 net-snmp4 內安裝的是 ucd-snmp,而 feebsd5.0 以後的系列已經不用 ucd-snmp 而是改用 net-snmp,所以使用 ports tree 更新的 freebsd5.0 以後用戶必須改為 /usr/ports/net-mgmt/net
2.檢查 snmpd.conf 設定 #cd /usr/local/share/snmp #vim snmpd.conf 新增一個snmpd.conf檔案並加入以下內容 rocommunity public syslocation FreeBSD syscontact Maintainer sysname LocalHost
3.啟動 snmpd.sh #usr/local/etc/rc.d/snmpd.sh
4.設定開機啟動 snmp #ee /etc/rc.conf snmpd_enable="YES" snmpd_flags="-p /var/run/snmpd.pid"
5.安裝 MRTG 套件 #cd /usr/ports/net-mgmt/mrtg #make ; make install
6.產生 mrtg.cfg 設定檔 #cd /usr/local/etc/mrtg #cfgmaker public@欲監控的ip > mrtg.cfg 「欲監控的ip」請輸入實際要監控的ip位址,通常為本機ip。
7.產生 mrtg.cfg 在 /usr/local/etc/mrtg 輸入以下指令 #cfgmaker \ --global 'WorkDir: /usr/local/www/data/mrtg' \ --global 'Options[_]: growright, bits' \ --global 'Language: big5' \ --global 'WithPeak[_]: wmy' \ public@想監控的ip \ ? > /usr/local/etc/mrtg/mrtg.cfg 其中--global 'WorkDir: /usr/local/www/data/mrtg'是設定放置mrtg的目錄。
8.產生首頁 #indexmaker \ --title 'MRTG - 網路流量分析' \ --addhead='<meta http-equiv="Content-Type" content="text/html; charset=big5">' \ --output /usr/local/www/data/mrtg/index.html \ --columns=1 \ --nolegend \ /usr/local/etc/mrtg/mrtg.cfg 其中--output /usr/local/www/data/mrtg/index.html是指定首頁
9.執行MRTG #/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg 第一次執行會有錯誤,執行個三次就會正常運行,不放心可以多下幾次指令。 到此MRTG算是安裝完成,之後若想改設定檔更新請從步驟7開始重新操作,便會重新建立MRTG。 最後不要忘記將mrtg指令加入crontab */5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg 以上設定是指每五分鐘更新一次MRTG的資料。
Cacti
MRTG是一套開發已久的軟體,簡單易上手,安裝完後僅需更改配置檔即可,然而由以上 的安裝步驟可以發現以下幾項缺點, 1. 使用文本式的資料庫,資料不能重複使用 2. 只能按日、周、月、年來查看資料 3. 畫出圖形有限 4. 無管理功能
因此原作者又開發了一套RRDtool替代MRTG,兩者相較優點如下: 1. 使用RRD存儲格式,資料能重複使用,例如可將不同RRD檔中的資料相加。 2. 可依不同需求定義任意時間區段繪圖,例如可設定繪出一年內或半小時內的網路流量分析圖。 3. 是個強大的繪圖引擎,能依需求繪出任意圖型
然而 RDRtool 也有下述缺點: 1. RRDtool的作用只是儲存資料和繪圖,不似MRTG具有集成的資料獲取功能 2. 在命令列的使用相較MRTG較為複雜,使用極多參數 3. 缺乏管理功能
RRDtool的複雜指令對於一般使用者來說操作上較不友善,因此 Cacti 應運而生,除了 可監控 SNMP 流量跟系統資訊外,也可依需求另行外掛其他的 scripts 並加上不同的 templates 繪製網路流量監控圖。相較於 MRTG 來說 Cacti 在管控上相形便利,然而如果網 路設備過多的情況下,可能過於耗費系統資源而使得 Cacti 無法動彈,網路管理者應參酌需 求適當使用。
安裝步驟:
1.先確認server上已安裝 Apache, PHP 和 MySQL 基本上php必須能開啟snmp, sockets 和gd 函式庫
2.安裝SNMP 可參照前面mrtg安裝SNMP的部分
3.安裝RRDTool 由於rrdtool1.2版本已經不再自帶外部的lib庫(如cgilib,zlib等),所以需從http://people.ee./~oetiker/webtools/rrdtool/pub/libs/ 下載安裝,建議還是使 用1.0.x的版本比較方便 (http://people.ee./~oetiker/webtools/rrdtool/pub/rrdtool-1.0.x/rrdtool-1.0.50.tar.gz)
4.安裝 Cacti 並建立 MySQL 資料庫 # mysqladmin --user=root create cacti
5.匯入預設的 cacti 資料庫 #mysql cacti < cacti.sql
6.修改檔案 include/config.php 連接 MySQL 的使用者、密碼及資料庫名稱 $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cacti";
7.新增 Unix 使用者 #useradd -r -M cactiuser
8.設定 log 及 rra 資料夾權限 # chown -R cactiuser rra/ log/
9.新增自動執行到您的 /etc/crontab 檔案裡 */5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1 值得注意的是要以前面新增的使用者來執行,請勿以root身份執行,否則會有權限的問題。
10.將 Cacti 的執行目錄設定到 apache 中,使它可以運行,如果到這都沒問題,就可以 使用圖形化介面來管理
11.打開您的瀏覽器輸入網址 http://your-server/cacti/,登入的帳號密碼預設都是admin ,登入後需立即更改密碼以策安全,並輸入相關資訊,如rrdtool, php, snmpwalk和snmpget 的位置,使用 ucd-snmp 或 net-snmp 等等。
Cacti 集 MRTG 與 RRDtool 之大成,使用 snmpget 收集流量資訊並發揮 RRDtool 強 大繪圖功能,並提供強大的資料及用戶管理,相信對網管人員可提供事半功倍之效。
在電腦網路蓬勃發展的現今社會,使用者所擁有的頻寬越來越大,更需要完善的管理機 制管控網路流量,以期達到公平分配網路資源,發揮最大使用效益。透過觀察、記錄、分析 、解決網路流量可瞭解網路使用狀況,提供網管人員作為網路建置與管理決策的參考,才能 有效達到網路控管的目的。
|