MRTG - 主機網路卡流量統計

1、前言

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






文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 SNMP
          步驟2.修改 SNMP 設定檔
          步驟3.開機便自動啟動 SNMP 服務
          步驟4.啟動 SNMP 服務
          步驟5.安裝 MRTG 套件
          步驟6.產生 mrtg 設定檔
          步驟7.編輯 mrtg 設定檔
          步驟8.產生 mrtg 圖
          步驟9.啟動 MRTG
4、參考
5、Me FAQ
          Q1.make install clean 無法使用?
          Q2.連到 MRTG 首頁只看到 icon 卻沒看到流量表?
          Q3.MRTG 版本 1.x 及版本 2.x 畫出的流量圖不一樣?





2、實作環境

FreeBSD 5.2-RELEASE
  • net-snmp-5.1_2
  • mrtg-2.10.13,1
FreeBSD 6.2-RELEASE
  • net-snmp-5.3.1_3
  • mrtg-2.15.2,1





3、安裝及設定

步驟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                   //Read Only community name
 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                       //安裝套件




步驟6.產生 mrtg 設定檔

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




步驟7.編輯 mrtg 設定檔

編輯我們剛才產生的 MRTG 設定檔 (mrtg.cfg)。
vi mrtg.cfg      //編輯 mrtg.cfg
 Language: big5                          //設定語系
 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 設定檔沒問題,因此可以將指令寫入排程內以便達成自動產生流量圖表。啟動 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






4、參考






5、Me FAQ

Q1.make install clean 無法使用?

Error Message:
當我到 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 Message:
執行完 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  //名稱錯誤


產生 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 Message:
因為二方人馬分別都有作 MRTG ,但是畫出來的流量圖在有些關鍵點是不同的結果?

Ans:
結論為 MRTG 版本所導致!!
  • MRTG v1.x: 當流量超過 100MB 時會 無法 正常畫出流量圖 (請更新至 MRTG v2.x)。
  • MRTG v2.x: 當流量超過 100MB 時可正常畫出流量圖。