windows環境MRTG安裝筆記

使用前請先看此回覆

  首先要說明的是這篇文章並不是安裝教學,本文重點在使用MRTG自動紀錄本機網路介面、CPU以及記憶體狀況的實例,基本環境為有安裝PERL及SNMP的網站伺服器。
   MRTG官方網頁的windows安裝說明中說在.cfg檔案設RunASDaemon: yes就可以自動執行,但是使用RunASDaemon會出現一個不能關閉的視窗,若把視窗關掉就不會自動執行。另外一個方法則是用FireDaemon 把MRTG設成服務,這個方法最大的缺點是執行過後不會釋放記憶體,必須要重啟服務。因為對以上兩種方式都不太滿意,還有使用MRTG紀錄CPU、記憶體 的教學幾乎都是linux環境,而使用Windows架站的使用者也不少,應該也有這個需求,所以產生寫這篇文章的動機。

會用到的軟體:
1.MRTG http://www.ee.ethz.ch/~oetiker/webtools/mrtg/
2.SNMP4W2K http://www.wtcs.org/snmp4tpc/snmp4w2k.htm
3.nnCron Lite http://www.nncron.ru/

設定說明:
請先安裝以上所列之軟體

一、網路介面記錄
使用命令提示字元(Dos-mode)到MRTG解壓縮目錄bin
輸入 perl cfgmaker public@127.0.0.1 –global 「WorkDir: C:webmrtg」 –output network.cfg
(C:webmrtg 改為要放置MRTG記錄的網站資料夾)
cfg檔案中有Target[XXX],每個Target[xxx]都是一個記錄,產生的紀錄檔名會是xxx.html

輸入 perl mrtg network.cfg
進入您的網址 http://localhost/mrtg/xxx.html 即可看到網路狀況

二、CPU及記憶體使用紀錄
以下兩個CFG檔需要安裝SNMP4W2K才能用,cpu.cfg是紀錄系統和使用者的CPU用量,ram.cfg是紀錄記憶體使用量及剩餘實體記憶體,放置在mrtgbin的目錄下即可,如果要改成其他記錄請自行參鋤NMP4W2K的oid說明。
cpu.cfg
Language: big5
WorkDir: c:webmrtg #改為您的網站MRTG目錄
EnableIPv6: no

Target[cpu]: 1.3.6.1.4.1.311.1.1.3.1.1.2.1.5.1.48&1.3.6.1.4.1.311.1.1.3.1.1.2.1.4.1.48:public@127.0.0.1
Title[cpu]: CPU負載
PageTop[cpu]: < H1 >CPU負載< / H1 >
MaxBytes[cpu]: 100
Options[cpu]: gauge, nopercent, growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]: %
Legend1[cpu]: CPU 純係統負載
Legend2[cpu]: CPU 使用者負載
LegendI[cpu]: CPU 純係統負載
LegendO[cpu]: CPU 使用者負載

ram.cfg
Language: big5
WorkDir: c:webmrtg #改為您的網站MRTG目錄
EnableIPv6: no

Target[ram]: 1.3.6.1.4.1.311.1.1.3.1.1.1.3.0&1.3.6.1.4.1.311.1.1.3.1.1.1.2.0:public@localhost:
Title[ram]: 記憶體使用
PageTop[ram]: < H1 >記憶體使用< / H1 >
MaxBytes[ram]: 1000000000 #此為1GB ram的設定,可自行更改
Unscaled[ram]: dwmy
Options[ram]: gauge, absolute, growright, noinfo
YLegend[ram]: Bytes
ShortLegend[ram]: Bytes
Legend1[ram]: 使用記憶體 (Bytes)
Legend2[ram]: 剩餘記憶體 (Bytes)
LegendI[ram]: 使用記憶體
LegendO[ram]: 剩餘記憶體

在mrtgbin輸入 perl indexmaker –output index.html network.cfg cpu.cfg ram.cfg
把產生的index.html複製到網站的mrtg資料夾中。

三、自動執行
做一個批次檔run.bat
@echo off
PERL安裝路徑binperl MRTG安裝路徑binmrtg MRTG安裝路徑binnetwork.cfg
PERL安裝路徑binperl MRTG安裝路徑binmrtg MRTG安裝路徑bincpu.cfg
PERL安裝路徑binperl MRTG安裝路徑binmrtg MRTG安裝路徑binram.cfg
exit

再做一個批次檔mrtg.bat
@echo off
start /min run.bat放置路徑run.bat
exit

在nnCron Lite安裝目錄中的cron.tab增加一行

*/5 * * * * mrtg.bat放置路徑mrtg.bat

(每五分鐘執行一次)

執行nnCron LIte目錄下的startcron.bat

完成

範例網址: http://max.idv.tw/mrtgdemo/

Max, max@max.idv.tw

四月 6日, 2004 發表於 主機使用

26 則迴響 to “windows環境MRTG安裝筆記”

  1. hope 說:

    我想請能怎麼抓router跟switch的流量呢



  2. Max 說:

    增加新的設定檔就可以了



  3. kod 說:

    您好
    小問題想請問一下
    我現在要監控數台的winserver2003
    依照您的方法除了沒安裝snmp4w2k
    本機的cpu ram可讀取
    但是其他台server的cpu ram在做perl mrtg xx.cfg時就錯誤
    是一定要裝snmp4w2k嗎?



  4. Max 說:

    要監控的設備必須支援SNMP,
    但不一定要用snmp4w2k。



  5. ktvking 說:

    你好!想請問一下
    我用你的CPU.cfg監控同一網段電腦的CPU。
    perl indexmaker後沒有任何反應與網頁產生。
    perl mrtg cpu.cfg後
    出現error:Target[cpu][_IN_] ‘ $target->[0]{$model] ‘ did not eval into defind data
    error:Target[cpu][_OUT_] ‘ $target->[0]{$model] ‘ did not eval into defind data
    請問監控其他電腦的CPU,cpu.cfg哪裡需要改?(public@xxx.xxx.xxx.xxx已更改)
    還是我的perl指令下錯?



  6. Max 說:

    寫完這篇文章後我換過兩次blog程式,
    剛重看一下發現有些地方轉換出現錯誤,
    例如:

    perl cfgmaker public@127.0.0.1 –global 「WorkDir: C:webmrtg」 –output network.cfg

    正確應該是

    perl cfgmaker public@127.0.0.1 --global 「WorkDir: C:\webmrtg」 –-output network.cfg

    目錄位置的”\”不見了,
    需要兩個”-”也只有一個,
    不過後台編輯看到是正常的。
    要直接使用時請檢查一下小地方,
    很抱歉對您造成困擾。



  7. ktvking 說:

    感謝你的回覆,但你說的那個錯誤地方,我自己Run時有做修正。
    不好意思可能還要在請教你了!CPU.cfg這個檔執行後,會出現如上述的錯誤。
    這應該怎麼來改寫?還是你能推薦我有關Windows下用Mrtg監控遠端電腦
    CPU、RAM的相關資料或書籍可以參考。謝謝!



  8. Max 說:

    錯誤是因為沒有得到需要的數據,
    最常見的原因是SNMP沒啟用。
    另外這個設定檔只能用在SNMP4W2K,
    SNMP4W2K已經是很久以前的SNMP agent,
    如果還是無法使用建議您換新的SNMP agent例如SNMP Informant
    再閱讀SNMP Informant的文件查OID。
    更改OID設定就能監測不同的東西,
    看SNMP程式的文件應該就夠了。



  9. ktvking 說:

    小弟已成功監測Router的CPU使用記錄了!
    之前的錯誤問題出在參數上,將參數改為官網的1.3.6.1.4.1.9.2.1.58.0就可以了!
    只是小弟還是不懂原理,參數到底要如何設?這參數的定義從何而來?可否請Max解惑一下!



  10. Max 說:

    1.3.6.1.4.1.9.2.1.58.0這串數字就是oid,
    我文章範例是監測安裝snmp4w2k的windows,
    並不是用來監測router。

    oid說明可以看這個網頁
    http://www.alvestrand.no/objectid/



  11. ktvking 說:

    感謝Max提供OID,但查詢後又有問題想請教!
    你的1.3.6.1.4.1.311為Microsoft。
    那1.1.3.1.1.2.1.5.1.48與1.1.3.1.1.2.1.4.1.48這又代表什麼?
    因為我在OID查詢時只查到1.3.6.1.4.1.311,後半段的意思就查不到。



  12. Max 說:

    沒記錯的話應該是system usage和user usage,
    還有很多介紹oid的網站,
    用google找一下吧。

    我去年一直找不到windows設定才寫這篇,
    當初主要是看snmp4w2k的mib文件,
    free version是2002年的版本。



  13. C.K. 說:

    請教一下

    這一個批次檔可以背景執行或者最小化嗎

    因為每次執行時都會影響工作會跑出劃面出來



  14. Max 說:

    mrtg.bat中的start /min已經有加上最小化參數,
    如果不想用DOS批次檔可改用Windows Script Host



  15. idic 說:

    請問大大

    我要如何可以抓到Memory 的總容量大小???



  16. idic 說:

    請問大大

    我看到您的範例裡的Memory圖檔有秀出%請問您是如何做出來的???
    麻煩您指導一下!!謝謝!!



  17. Max 說:

    記憶體容量是自行設定的,
    範例中有提到

    MaxBytes[ram]: 1000000000 #此為1GB ram的設定,可自行更改

    MRTG會算出百分比不需要另外設定。



  18. idic 說:

    MAX 您好

    小弟我有點愚笨,所以,我還是不太了解您的MRTGDEMO裡的記憶體所秀出來的%,
    麻煩您可以指導一下嗎???
    還有請問您有碰到過這個1.3.6.1.4.1.311.1.1.3.1.1.1.2.0 OID所抓出來的是負的嗎??因為我有機器是4GB的RAM,好像抓出來有問題!!
    麻煩您了!!謝謝!!



  19. Max 說:

    %數 = MRTG抓到的數值 / MaxBytes設定值
    如果抓到的數值錯誤,顯示出來的結果也就不正確,至於您所說的負題我沒遇到過。SNMP4W2K已經停止更新很久,您可以考慮使用新的SNMP Informant試試。



  20. idic 說:

    MAX 您好

    請問一下有FOR WINNT的Snmp軟體嗎???



  21. Max 說:

    可參考SNMP4NT



  22. honping 說:

    您好!請教您,您說的方式,適用於Windows XP系統下偵測cpu和ram嗎?



  23. Max 說:

    之前是在xp環境試做,現在個人使用可以考慮設定更簡單的prtg



  24. honping 說:

    Max您好,請教您,我也是在XP環境下針對我的網路卡做流量偵測而已,如果單純偵測流量都ok,但是偵測cpu和ram就不行了,都是照上面您教導的方式,第二步驟我有用SNMP Informant,有哪一些需要注意的嗎?例如第二和第三步驟軟體的安裝路徑須特別留意,煩請您指導了,謝謝



  25. Max 說:

    第二步有說此設定檔適用於SNMP4W2K,換其他SNMP程式請看說明文件更改oid,就是public@localhost前面一長串數字。



  26. help!! 說:

    請教各位先進, 小弟是route是使用cisco 2621, 要怎麼查記憶體和cpu所使用的OID呢??
    tks!!



發表迴響

Powered by WordPress | Theme by BOB