使用 MRTG 搭配 Net-SNMP 監測系統網路流量

出自啟示錄
跳至導覽 跳至搜尋

作者:Joe Horn( joehorn AT leobbs DOT net )

授權:[CC授權:姓名標示-非商業性-相同方式分享 2.5]

附註:安裝步驟適用於 FreeBSD 平台,其它 UNIX-Like OS 可能有所不同。


使用軟體:


前言

可能有許多人跟我一樣,負責維護的主機幾乎不在身邊,所有控管的動作幾乎都從遠端進行。

在主機上安裝 MRTG 與 Net-SNMP 可以讓我們由網頁就可以監測主機的網路流量,增加主機的安全性,例如:主機被入侵後拿來當作攻擊的跳板。

安裝

使用 ports 來安裝 Net-SNMP

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

使用 ports 來安裝 MRTG

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

設定與啟動 Net-SNMP

設定 Net-SNMP

設定 community 名稱,請在 /usr/local/share/snmp 下面建立一個名為 snmpd.conf 的檔案,加入以下這行:

rocommunity  [您想要的community名稱]

修改 /etc/rc.conf ,加入以下這行:

snmpd_enable="YES"

啟動 Net-SNMP

輸入以下指令來啟動 SNMP 監控 daemon :

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

設定 MRTG

建立設定檔

用 cfgmaker 指令來抓取 SNMP 之設定資料:

# /usr/local/bin/cfgmaker [您剛剛設定的 community 名稱]@[欲監測之主機 IP/DN] > /usr/local/bin/mrtg.cfg

修改設定檔

修改 mrtg.cfg 內的資料,用編輯器開啟 /usr/local/bin/mrtg.cfg 並衡量情況修改成以下資料:

WorkDir: /usr/local/apache/htdocs/mrtg
  • WorkDir 前面的 # 請拿掉,後面的絕對目錄指的是您的網頁放置目錄,請依照各主機之情況自行設定。

請將這行前面的 # 拿掉:

# Options[_]: growright, bits

並在下面加進這行:

Language: big5

也就是變成這樣:

#  to get bits instead of bytes and graphs growing to the right
Options[_]: growright, bits
Language: big5

建立網頁與所需資料

複製網頁所需圖檔:

# cd /usr/local/share/mrtg
# cp * [MRTG產生流量圖表之網頁所在目錄]
  • 後面的那個目錄就是您在設定 WorkDir 所用的目錄,請先確定該目錄是否存在。

用 indexmaker 初始化網頁:

# /usr/local/bin/indexmaker --title=xxx主機網路流量圖表 --rrdviewer='.' --output=[MRTG產生流量圖表之網頁絕對位置] /usr/local/bin/mrtg.cfg
  • xxxx主機網路流量圖表為該網頁之標題,請自行衡量情況作修改。

測試 MRTG

測試 MRTG 是否工作正常:

# /usr/local/bin/mrtg /usr/local/bin/mrtg.cfg

重複執行三次後,打開瀏覽器觀看產生之網頁是否正常。

正式執行

MRTG 需要依靠定時的指令執行才會更新資料。

請以讓系統每五分鐘執行以下指令:

/usr/local/bin/mrtg /usr/local/bin/mrtg.cfg
  • 例如:
*/5 * * * * /usr/local/bin/mrtg /usr/local/bin/mrtg.cfg > /dev/null 2>&1