[ 安裝心得 ] 如何設定 mrtg ﹖
作者﹕網中人 <netman@study-area.org>
-------------
前言﹕
許多朋友都希望能透過一個簡單的途經﹐以獲得網路流量的統計資料。
此一需求可以透過 snmp 和 mrtg 達成。
下面的文章是告訴您如何簡單的在系統上面設定 snmpd 和 mrtg ﹐
不過﹐這裡只是單純的針對網路界面的流量而言的﹐其它的需要您自己研究文件了。
-------------
測試環境﹕
RedHat 7.2
-------------
設定步驟﹕
1) 獲得如下套件﹕
ucd-snmp-4.2.3-1.7.2.3.src.rpm
(ftp://ftp.redhat.com/pub/redhat/linux/updates/7.2/en/os/SRPMS/)
mrtg-2.9.6-6.i386.rpm
(redhat 7.2 第 2 片光碟)
2) 進行安裝﹕
rpm --rebuild ucd-snmp-4.2.3-1.7.2.3.src.rpm
rpm -Fvh /usr/src//usr/src/redhat/RPMS/i386/ucd-snmp-*.rpm
rpm -ivh /mnt/cdrom/RedHat/RPMS/mrtg-2.9.6-6.i386.rpm
3) 編輯 /etc/snmp/snmpd.conf 檔案﹐並找到如下文字(非全部)﹐並修改紅色字體部份﹕
(不要忘記將設定行前面的註解符號也拿掉哦~~)
# --------------------------------------------------
# Here is a commented out example configuration that allows less
# restrictive access.
# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY
# KNOWN AT YOUR SITE. YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO
# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE.
## sec.name source community
com2sec local localhost netadmin
com2sec mynetwork 192.168.100.0/24 netadmin
# 註﹕請將 192.168.100.0/24 改為您機器目前所在的 network 範圍。
## group.name sec.model sec.name
group MyRWGroup v1 local
group MyROGroup v1 mynetwork
#
#group MyRWGroup any otherv3user
#...
## incl/excl subtree mask
view all included .1 80
## -or just the mib2 tree-
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
## context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth prefix all none none
access MyRWGroup "" any noauth prefix all all all
4) 啟動 snmpd :
service snmpd restart
chkconfig snmpd on
5)產生 mrtg.cfg 檔﹕
cfgmaker --global 'WorkDir: /var/www/html/mrtg' \
--global 'Options[_]: bits,growright' \
--global 'Language: big5' \
--output /etc/mrtg/mrtg.cfg \
netadmin@your.machine.name
# 註﹕請將 @ 後面的機器名稱改為您的機器名稱。
6) 連續執行 3 次如下命令﹕
mrtg /etc/mrtg/mrtg.cfg
7)產生 index.html ﹕
indexmaker --columns=1 \
--output=/var/www/html/mrtg/index.html \
--title='Traffic Info' \
/etc/mrtg/mrtg.cfg
-------------
檢視成果﹕
1) 只要您有網頁瀏灠器﹐將 URL 至到您的於設 html 目錄下的 mrtg/index.html 就可以了﹐
例如﹕
http://your.machine.name/mrtg/index.html
-------------
一些注意﹕
* 執行任何命令之前﹐請先將 output 檔備份好﹗
* 在執行 cfgmaker 之前﹐可以先用 snmpwalk host_anme community_name 來測試﹐如﹕
snmpwalk your.machine.name netadmin
* 在執行 indexmaker 之前﹐可以手工的修改 mrtg.cfg ﹐以符合您的網頁顯示要求。
基本上﹐您懂 HTML 的話﹐都沒問題。
-------------
後記﹕
透過 snmpd 和 mrtg 的配搭﹐您可以輕易的用 web 界面來掌握最新的統計資料﹐
但因為 snmpd 所提供的資料實在非多﹐請確定 snmpd 的服務不會向未信任網路提供﹐
例如透過 firewall 的設定或修改 snmpd 的設定來達成。
前不久﹐關於 snmpd 程式的嚴重安全漏洞被發現﹐建議您看看如下文章﹕
http://www.cert.org.tw/advisory/200202/TW-CA-2002-012.txt
以決定您需要進行補救的步驟。如果 redhat 的用戶﹐請參考﹕
http://www.redhat.com/support/errata/RHSA-2001-163.html
如果您還希望用 mrtg 收集更多的資訊﹐不妨參考 鳥哥兄 的文章﹕
http://aerosol.ev.ncku.edu.tw/~vbird/safe/04mrtg.html
-------------
關於 RedHat 9.0 之 snmpd 設定注意:
1) snmp 套件改用 net-snmp ,可於 CD-2 找到如下兩個套件來安裝
* net-snmp-5.0.6-17
* net-snmp-utils-5.0.6-17
2) snmpd.conf 路逕改為 /etc/snmp/snmpd.conf ,可用設定內容如下(濾掉註解後):
# sed 's/#.*$//' snmpd.conf | grep -v '^$'
com2sec local localhost netadmin
com2sec mynetwork 192.168.100.0/24 netadmin
group MyRWGroup v1 local
group MyROGroup v1 mynetwork
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80
access MyROGroup "" any noauth prefix all none none
access MyRWGroup "" any noauth prefix all all all
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root (configure /etc/snmp/snmp.local.conf)
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
3) snmpwak 命令需指定 -c 及 -v 參數,如:
# snmpwalk localhost -c netadmin -v 1
4) 若執行 mrtg /etc/mrtg/mrtg.cfg 碰到如下錯誤:
Malformed UTF-8 character (unexpected end of string) at /usr/bin/../lib/mrtg2/locales_mrtg.pm line 614.
那可能是 locale 的關係,可先執行 export LANG=C 再重跑 mrtg 命令。
5) 若執行 indexmaker 時出現如下錯誤,可忽略:
Possible precedence problem on bitwise | operator at /usr/bin/../lib/mrtg2/BER.pm line 601.
Can't locate package $VERSION for @MRTG_lib::ISA at /usr/bin/indexmaker line 49
main::BEGIN() called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
eval {...} called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
-------------
最後更新日期﹕
2004/03/24
|