站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

MRTG-主機網卡流量統計

前言

利用 SNMP 協定偵測有提供 SNMP 資訊的設備利用 MRTG 畫出網卡流量 (進/出) 統計圖表。

實作環境

安裝及設定

步驟1.安裝 SNMP

切換到 ports tree 下的 net-snmp 資料夾開始安裝 SNMP 吧。

 #cd /usr/ports/net-mgmt/net-snmp/       //切換至安裝路徑
 #make install clean                     //安裝套件並清除安裝過程中產生不必要檔案

步驟2.修改 SNMP 設定檔

安裝完成後修改 SNMP 設定檔以符合您主機的狀況

 #cd /usr/local/share/snmp               //路徑
 #less  snmpd.conf                       //系統自行建立-內容如下
 rocommunity   mrtg                      //community name 安全性問題 (ro 代表 read only)
 syslocation   Taiwan Taipei             //主機所在位置
 syscontact    weithenn@weithenn.org     //管理者email

步驟3.開機便自動啟動 SNMP 服務

設定 /etc/rc.conf 檔以便機器重開機時能自動啟動 SNMP 服務

 #vi /etc/rc.conf                        //編輯rc.conf
 snmpd_enable="YES"                      //開機時啟動 snmp 服務

步驟4.啟動 SNMP 服務

輸入如下指令來啟動 SNMP 服務

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

檢查 SNMP 服務是否啟動

 #sockstat |grep snmpd                   //檢查 snmpd 服務是否啟動
 root     snmpd      35552 9  tcp4   *:199                 *:*
 root     snmpd      35552 10 udp4   *:161                 *:*

步驟5.安裝 MRTG 套件

切換到 ports tree 下的 MRTG 資料夾開始安裝 MRTG 吧。

 #cd /usr/ports/net-mgmt/mrtg            //切換至安裝路徑
 #make install                           //安裝套件(因等一下需要複製圖檔所以不執行 make clean)

步驟6.產生 mrtg 設定檔

安裝完成後我們切換到 mrtg 目錄下,執行 cfgmaker 指令來產生 MRTG 設定檔 (將相關 SNMP Information 匯入 mrtg.cfg 內),若不使用主機名稱 (weithenn.org) 也可使用 IP Address。

 #cd /usr/local/etc/mrtg                 //路徑
 #rehash                                 //使用的指令才不會發生找不到的情形
 #cfgmaker mrtg@weithenn.org > mrtg.cfg  //產生 mrtg 設定檔 (@ 前的 mrtg 為您剛才設定的 community name)

步驟7.編輯 mrtg 設定檔

編輯我們剛才產生的 MRTG 設定檔 (mrtg.cfg)

 #vi mrtg.cfg                            //編輯 mrtg.cfg 內容如下
 Language: big5                          //加入此行設定 MRTG 的語系為繁體中文
 WorkDir: /usr/local/www/data/mrtg       //設定 MRTG 流量圖檔存放的路徑
 Options[_]: growright, bits             //去掉 # 註解符號
 WithPeak[_]: wmy                        //分別在每週、每月、每年的圖表畫出每 5 分鐘的流入/流出圖

步驟8.產生 mrtg 圖

設定完 MRTG 設定檔後,我們便可開始執行 indexmaker 來產生 MRTG 流程圖

 #cd /usr/local/www/data                     //切換到您的 Web DocumentRoot 資料夾
 #mkdir mrtg                                 //建立 mrtg 用資料夾
 #cd mrtg                                    //切換至該資料夾內
 #touch index.html                           //建立首頁空檔
 #cd /usr/local/etc/mrtg                     //切換至 mrtg 設定檔目錄
 #indexmaker –title 'weithenn.org MRTG'–output /usr/local/www/data/mrtg/index.html mrtg.cfg  //寫入 mrtg index.html 內容
 #cd /usr/ports/net-mgmt/mrtg/work/mrtg-2.15.2/images                                          //切換至預設圖檔放置目錄              
 #cp * /usr/local/www/data/mrtg                                                                //複製 mrtg 圖檔

步驟9.啟動 MRTG

上面步驟指令若有正確產生流量圖後我們可以確定 MRTG 設定檔沒問題,因此可以將指令寫入排程內以便達成自動產生流量圖表

 #/usr/local/bin/mrtg  /usr/local/etc/mrtg/mrtg.cfg              //啟動 MRTG (執行到沒錯誤訊息為止,約為二、三次) 
 #crontab –e                                                    //可加入排程例如每五分鐘
 */5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

參考

[MRTG - Tobi Oetiker's MRTG - The Multi Router Traffic Grapher]

[twbsd.org - 第十四章 網頁伺服器進階應用 14.5 MRTG 流量分析]

[★ OHaHa's 學習心得 ★]

[man page snmpd.conf]

Me FAQ

Q1.make install clean 無法使用?

Error Meaage:

當我到 net-snmp 目錄下執行 make install clean 時卻出現如下錯誤訊息

 #cd /usr/ports/net/net-snmp ; make install clean
 make: don't know how to make install . Stop

Ans:

把 /usr/ports 刪除掉再利用 CVSUP 更新一次 Port Tree 後即可,原來是 net-snmp 路徑改了,從原本的 /usr/ports/net/net-snmp --> /usr/ports/net-mgmt/net-snmp

Q2.連到 MRTG 首頁只看到 icon 卻沒看到流量表?

Error Meaage:

執行完 indexmaker 指令後只看到 MRTG 的 ICON 卻沒看到流量圖。

Ans:

原因為產生 MRTG 設定檔 (mrtg.cfg) 時沒有成功,以下為失敗訊息

 --base: Get Device Info on mrtg@weithenn.org:
 SNMP Error:
 no response received
 SNMPv1_Session (remote host: "weithenn.org" [61.60.59.58].161)
                                    community: "mrtg"
                                    request ID: -1661044999
                                    PDU bufsize: 8000 bytes
                                    timeout: 2s
                                    retries: 5
                                    backoff: 1)
 at /usr/local/lib/perl5/site_perl/5.6.1/SNMP_util.pm line 621
 SNMPWALK Problem for 1.3.6.1.2.1.1 on mrtg@weithenn.org::::::v4only
 at /usr/local/bin/cfgmaker line 825
 WARNING: Skipping mrtg@weithenn.org: as no info could be retrieved    //名稱指定可能有問題,試試指定為 hostname.domainname
 

產生 mrtg 設定檔成功訊息

 --base: Get Device Info on mrtg@weithenn.iorg:
 --base: Vendor Id:
 --base: Populating confcache
 --snpo: confcache mrtg@weithenn.org: Descr vr0 --> 1
 --snpo: confcache mrtg@weithenn.org: Descr plip0 --> 2
 --snpo: confcache mrtg@weithenn.org: Descr lo0 --> 3
 --snpo: confcache mrtg@weithenn.org: Type 6 --> 1
 --snpo: confcache mrtg@weithenn.org: Type 34 --> 2
 --snpo: confcache mrtg@weithenn.org: Type 24 --> 3
 --snpo: confcache mrtg@weithenn.org: Ip 127.0.0.1 --> 3
 --base: Get Interface Info
 --base: Walking ifIndex
 --base: Walking ifType
 --base: Walking ifAdminStatus
 --base: Walking ifOperStatus
 --base: Walking ifSpeed

Q3.MRTG 版本 1.x 及版本 2.x 畫出的流量圖不一樣?

Error Meaage:

因為二方人馬分別都有作 MRTG 但畫出來的圖在有些關鍵點是不同的?

Ans:

結論為 MRTG 版本所導致!!

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com