Chinaunix首页 | 论坛 | 博客
  • 博客访问: 105905
  • 博文数量: 17
  • 博客积分: 47
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-16 15:40
个人简介

学无止境

文章分类

全部博文(17)

文章存档

2014年(2)

2013年(15)

分类: LINUX

2013-04-13 17:15:40

前言MRTG運作過程
安裝前的準備工作
開始安裝 MRTG
偵測網路卡流量
偵測 CPU 負載量
即時偵測線上人數  (2001/10/29 update)
在 Linux 上面偵測 Win2000 的流量  (2001/11/05 update)
在 Linux 上面偵測 Windows98 的流量 (2001/11/06 update)
一些問題彙整

  • 前言
    先來『』吧。
    網路伺服器主機的資料總流量(網路卡的資料傳送總數),以及 CPU 使用率和特殊服務(例如 squid 的代理服務)等等的封包傳送率(或者說是流量),是網路管理人員所必須要注意的事項,因為當主機的 CPU 使用率過高的時候,系統可能呈現不穩定的狀態,而當流量過高的時候,就需要注意是哪一個服務或者是哪一個傢伙在嘗試竊取我們的資料呢?因此,網路管理方面,有必要瞭解一下,我們主機的流量狀態,並視流量來加以限制或者是加大頻寬!
    目前網路上有一套蠻好用軟體可以用來偵測主機的資料流量,這也是各大伺服器常使用的軟體,就是 MRTG (Multi Router Traffic Grapher) 這一套軟體。MRTG 耗用的系統資源很小,因此有很多外掛的程式也依附在 MRTG 底下,因為 MRTG 的繪圖挺漂漂的說!我們這裡僅提供下面的偵測方法:
    1. 網路卡整體流量;(或者說是 Router 整體流量)
    2. CPU 使用率;
    3. RAM 使用率。

  • MRTG 的運作過程:
  • 要瞭解 MRTG 的運作,就必須瞭解一下 SNMP (Simple Network Management Protocol) 這個協定,因為 MRTG 是透過 SNMP 協定來監控流量的。所以,所有的 MRTG 所偵測的裝置都必須符合 SNMP 的協定。那什麼是 SNMP 呢?簡單的說,就是一種可以提供裝置(主機設備)的各類資訊的一種協定,諸如:網路流量、主機名稱、CPU用量等等的資訊都可以藉由此一協定來提供。不過,由於不同廠牌的裝置可能會有無法相容的情況,因而後來又有所謂 MIB (Management Information Base) 的協定產生。不論如何, MRTG 就是藉由 SNMP 這個協定來監測與取得相關的資訊以製作圖表的!詳細的 SNMP 你可以在 查得。
    所以我們可以知道,MRTG 基本上是透過以 SNMP 的協定,向主機詢問相關的資料後,主機傳遞數值給 MRTG 程式,然後 MRTG 再繪製成網頁上的圖表。由於 MRTG 是以 SNMP 協定來向主機要求資料,因此,您要使用 MRTG 來製作圖表時,必須先確定您的機器(或者說是設備)必須支援 SNMP 協定。好在 Linux 上面的網路卡,通常已經支援了 SNMP 協定了!當然, Windows 2000 也可以被偵測的到喔!
    另外,有一點是特別需要注意的,在 mrtg 這個程式中,其實他總共需要要求四個數據(前兩個用來作圖,後兩個提供相關資訊,基本上,繪圖只會用到前兩個數據),因此,你可以隨時製作 MRTG 的圖表,只要你能提供兩個數字(當然要是數字了,不然如何作圖!)給 mrtg 即可製圖!這個在後面的偵測 CPU 或者是 RAM 的地方,加掛自己寫的程式後,就可以得到啦!

  • 安裝前的準備工作:

  • MRTG 為使用 Perl 程式寫成的,並且使用到 zlib 、 gd 及 png 的函式庫(zlib 用來壓縮圖表、gd 用來繪製圖表),且由於 MRTG 乃使用 SNMP 協定,並且最後是以 HTTP 的網頁型態輸出成圖表,因此,你需要確定 Linux 主機中已經含有下列的套件:
    • perl  (perl-5.0xx 以上)
    • zlib  (zlib-1.1.3-xx 以上)
    • gd  (gd-1.3.xx 以上)
    • libpng
    • apache
    確定的方法就以 RPM 來確認吧:
    • rpm -qa | grep perl
    • rpm -qa | grep zlib
    • rpm -qa | grep gd
    • rpm -qa | grep libpng
    另外的另外,由於 MRTG 的圖表顯示是以 HTTP 的型態(Web 的型態)來顯示的,因此,你也必須安裝好了 Apache 這個套件,如果沒有安裝好的話,請到這個網頁的 Linux 架站文件去看看吧!以下,我們使用了預設的 Apache 路徑,為 /usr/local/apache/htdocs 這個路徑來安裝 mrtg 輸出的圖表,要注意,如果沒有 apache 的話,那就沒有辦法顯示圖表了(雖然可以執行 MRTG !!)
    其實在 Linux 安裝完畢之後,上面的幾個(除了 apache 可能會更新之外)套件都已經安裝好了!所以你可以直接來安裝 MRTG 囉!(基本上,我們這個網頁的 RedHat 6.1 已經包含了這些套件了,所以如果你在安裝的時候是選擇 All 的話,那就直接安裝下列的套件吧)

  • 開始安裝 MRTG

  • 由於 MRTG 是透過 SNMP 通訊協定來要求資料,因此你的 Linux 上面需要先安裝相關的軟體,通常我們都是安裝 ucd-snmp 這套軟體的,那就來安裝吧!
    1. 下載 , ;

    2.  
    3. 安裝 ucd-snmp-4.2.1.tar.gz:
    4. [root @tsai /root]# cd /usr/local/src
      [root @tsai src]# cp /root/ucd-snmp-4.2.1.tar.gz .
      [root @tsai src]# tar -zxvf ucd-snmp-4.2.1.tar.gz
      [root @tsai src]# cd ucd-snmp-4.2.1
      [root @tsai ucd-snmp-4.2.1]# ./configure --prefix=/usr/local/snmp
      .......(過程我就省略了)
               ************** Configuration Section **************

              You are about to be prompted by a series of questions.  Answer
      them carefully, as they determine how the snmp agent and related
      applications are to function.

              After the configure script finishes, you can browse the newly
      created config.h file for further - less important - parameters to
      modify.  Be careful if you re-run configure though since config.h will
      be over written.

      -Press return to continue- (這裡按 enter 吧)

      disabling above prompt for future runs...  yes
      checking System Contact Information...
       

      *** System Contact Information:

              Describes who should be contacted about the host the agent is
      running on.  This information is available in the MIB-II tree.  This
      Can Also Be Over-Ridden Using The "syscontact" Syntax In The Agent'S
      Configuration Files.

      System Contact Information (root@):root@tsai.adsldns.org (這裡輸入你的 e-mail)
      setting System Contact Information to...  root@tsai.adsldns.org
      checking System Location...
       

      *** System Location:

              Describes the location of the system.  This information is
      available in the MIB-II tree.  This Can also be over-ridden using the
      "syslocation" syntax in the agent's configuration files.

      System Location (Unknown):RedHat 6.1 (這裡可以隨便輸入,不正確也沒關係)
      setting System Location to...  RedHat 6.1
      checking Location to write logfile...
       

      *** Logfile location:

              Enter the default location for the snmpd agent to dump
      information & errors to.  If not defined (enter the keyword "none"
      at the prompt below) the agent will use stdout and stderr instead.
      (Note: This value can be over-ridden using command line options.)

      Location to write logfile (/var/log/snmpd.log):(按 enter 即可)
      setting Location to write logfile to...  /var/log/snmpd.log
      checking Location to write persistent information...
       

      *** snmpd persistent storage location:

              Enter a directory for the snmp library to store persistent
      data in the form of a configuration file.

      Location to write persistent information (/var/ucd-snmp):(按 enter 即可)

      [root @tsai ucd-snmp-4.2.1]# make
      [root @tsai ucd-snmp-4.2.1]# make install

      上面輸入的資訊,在進行 MRTG 的製圖時,會顯示在圖表上面,不過,這也是可以改的資訊,所以,如果不小心輸入錯誤也沒關係的。這樣就將 ucd-snmp 安裝妥當了!
       
    5. 啟動 ucd-snmp :

    6. 直接在 shell 下面打上 /usr/local/snmp/sbin/snmpd 即可!或者直接加在 /etc/rc.d/rc.local 當中,就可以自動開機時啟動了!
       
    7. 安裝 MRTG :
    8. [root @tsai /root]# cd /usr/local/src
      [root @tsai src]# cp /root/mrtg-2.9.17.tar.gz .
      [root @tsai src]# tar -zxvf mrtg-2.9.17.tar.gz
      [root @tsai src]# cd mrtg-2.9.17
      [root @tsai mrtg-2.9.17]# ./configure  --prefix=/usr/local/mrtg-2  \
      > --with-gd=/usr/include  \
      > --with-gd-lib=/usr/lib  \
      > --with-gd-inc=/usr/include  \
      > --with-png=/usr/include  \
      > --with-zlib=/usr/include

      [root @tsai mrtg-2.9.17]# make; make install
      [root @tsai mrtg-2.9.17]# mkdir /usr/local/apache/htdocs/mrtg (請注意,這裡與你的 WWW 主頁的放置地點有關,請依你的系統來設定,另外,由於我們需要設定 網路流量、CPU與RAM使用率,因此在 mrtg 中,可以再建立三個子目錄,比較容易管理啦!)
      [root @tsai mrtg-2.9.17]# mkdir /usr/local/apache/htdocs/mrtg/net
      [root @tsai mrtg-2.9.17]# cp images/*  /usr/local/apache/htdocs/mrtg/net (將一些影像檔拷貝到即將使用的目錄中去備用)

      就樣就安裝妥當了!再來就是開始要設定 MRTG 的組態囉!

  • 偵測網路卡流量

  • 要使用 mrtg 來作圖真的是太簡單了,只要幾個小步驟就可以自動的監測流量喔!首先以 mrtg 附的程式來製作一個參數檔 (預設檔名是 mrtg.cfg),然後修改一下 mrtg.cfg 這個參數檔之後,在直接執行三次參數檔,之後以 mrtg 程式附的小軟體,直接製作成首頁,就可以察看圖表囉!看下去吧!
    1. 設定 MRTG:
    2. [root @tsai mrtg-2.9.17]# cd /usr/local/mrtg-2/bin
      [root @tsai bin]# ./cfgmaker --output=/usr/local/apache/htdocs/mrtg/net/mrtg.cfg  \
      >  public@vbird.adsldns.org
      上面這個步驟會在你的主機上面製造一個參數檔,
      而你未來的設定都會自動的在這個參數檔中設定完成了!

      [root @tsai bin]# vi  /usr/local/apache/htdocs/mrtg/net/mrtg.cfg
      不過由於程式自動設定的 mrtg.cfg 有些地方會有瑕疵,
      因此,請將底下這三行修改成你的樣式喔!
      WorkDir: /usr/local/apache/htdocs/mrtg/net/
      Options[_]: growright, bits
      Language: big5

      [root @tsai bin]# ./mrtg  /usr/local/apache/htdocs/mrtg/net/mrtg.cfg
      開始測試你的參數檔,正常的話,進行
      這個動作要執行三次,就可以正常工作了,
      不過,若是有問題的話,就需要改 mrtg.cfg ,再執行直到沒有錯誤發生為止!

      [root @tsai bin]# ./indexmaker \
      > --output=/usr/local/apache/htdocs/mrtg/net/index.html \
      > --title=VBird主機流量統計表 \ 
      > /usr/local/apache/htdocs/mrtg/net/mrtg.cfg
      上面這個程式 indexmaker 是在製作首頁!當然,你也可以自訂首頁!
      上面是說,會自動的輸出一個 index.html 的檔案到 
      /usr/local/apache/htdocs/mrtg/net 中,就是主網頁啦!
       

      上面請特別注意:在 public@vbird.adsldns.org 這一行呢,public 是有其意義的(在 snmp 這個通訊服務裡面的預設搜尋的一個代碼),所以,如果你的主機的動態 DNS 名稱為 your.domain.name 則你就『一定』要寫成 public@your.domain.name 才行!千萬不要弄錯了!已經有很多網友遇到這個問題!
       
    3. 設定五分鐘偵測一次:

    4. 好了,開始偵測吧,就修改 /etc/crontab 吧!
      [root @tsai bin]# vi /etc/crontab

      #1. Runing The MRTG Net Flow Control
      */5 * * * * root /usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/net/mrtg.cfg > /dev/null 2>&1
       

      這樣就每五分鐘可以自動偵測一次網路卡的流量囉!
       
    5. 設定 Web site:

    6. 以上面的例子為例,則你的 mrtg 圖表在:

      就可以看到你的主機上網路卡的流量囉!
    好了,重點說完了,再來說說在 mrtg.cfg 這個參數檔當中你看到的幾個參數的意義吧!
  • Target[裝置名稱]
    • Target[vbird.adsldns.org_2]: 2: public@192.168.1.2

    • 上面是一般的用法,其中半括號內的是裝置的名稱,同一個裝置的各參數中,這個名稱要一致!
    • Target[vbird.adsldns.org_3]:`/usr/local/apache/htdocs/mrtg/cpu/mrtg.cpu`

    • 後面接的是一個自訂的加掛的可執行檔案,這個檔案執行之後,會顯示四個數據,這樣就可以繪圖了!在繪製非 MRTG 程式的預設咚咚中,這個是最常使用的方法了!
  • MaxBytes[裝置名稱]:
    • MaxBytes[vbird.adsldns.org_2]: 1250000

    • 後面的數字代表資料監測時,最大的傳送速率,使用 bytes,所以 10Mbps 則為  1.25MBytes,大約是 1250000 Bytes。這個數值程式會自動判斷啦!不過你也可以自己修改,用到這個數字的時候是在你的圖表下方,每一個說明後面的(xx%)時用到的。
    • MaxBytes[vbird.adsldns.org_3]: 100

    • 如果你的資料並不是 Bytes 時,例如監測 CPU 負載率時,那這個數值就需要改變啦!
  • Options[裝置名稱]:
    • Options[vbird.adsldns.org_2]: growright, bits  (用在網路流量中)
    • Options[vbird.adsldns.org_3]: growright, nopercent, gauge  (用在 CPU 負載中)
      growright:將資料隨時間變化的順序以右而左繪圖;
      bits:資料單位為 bits;
      nopercent:在圖下方的說明文字中,不顯示百分比;
      gauge:圖表的上限固定!

  • 偵測 CPU 負載量:

  • 偵測 CPU 負載量時,需要使用到額外的外掛程式,就是 sysstat 這個程式,我只使用在 RedHat 6.1 上面過,是可以使用的!
    1. 下載並安裝 :

    2. 不要說還不會使用 rpm 安裝套件喔!打屁屁!
      rpm -ivh sysstat-4.0.2-1.i386.rpm
       
    3. 編寫外掛程式:

    4. 以安裝完 sysstat 套件後,產生的 /usr/bin/sar 程式進行外掛程式的編寫,我寫了一個監測 CPU 的小程式,使用 bash 寫的,可以參考看看:
      [root @tsai cpu]# vi mrtg.cpu

      ---- 檔案開始 ----
      #!/bin/bash
      # 這個程式是用來偵測 CPU 的小外掛程式!
      # 1. 開始使用 sar 來監測 CPU 的 user 及 System 負載率
        cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $3}'`
        cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $5}'`
        UPtime=`/usr/bin/uptime | awk '{print $3 " " $4 " " $5}'`

      # 2. 列出四個數據(前兩個為數字)
        echo $cpuusr
        echo $cpusys
        echo $UPtime
        echo vbird.adsldns.org  (這裡寫你的主機名稱)
      ---- 檔案結束 ----

      [root @tsai cpu]# chmod 755 mrtg.cpu (設定成可執行)
      [root @tsai cpu]# ./mrtg.cpu (測試看可執行否)
      2.0
      5.4
      1 day, 22:30,
      vbird.adsldns.org

    5. 開始設定 mrtg 參數檔:

    6. 我的參數檔有點像這樣:
      [root @tsai cpu]# vi mrtg.cfg.cpu

      ---- 檔案開始 ----
      ### Global Config Options
      ### To get bits instead of bytes and graphs growing to the right
      WorkDir: /usr/local/apache/htdocs/mrtg/cpu/
      Language: big5

      Target[localhost]: `/usr/local/apache/htdocs/mrtg/cpu/mrtg.cpu`
      MaxBytes[localhost]: 100
      Options[localhost]: gauge, nopercent, growright
      YLegend[localhost]: CPU loading (%)
      ShortLegend[localhost]: %
      LegendO[localhost]:   CPU 使用者負載;
      LegendI[localhost]:   CPU 純系統負載;
      Title[localhost]: CPU ?t???v
      PageTop[localhost]:

      VBird 主機 CPU 負載率


       
             
       
      System:RedHat 6.1 in Linux Kernel 2.2.19

      ---- 檔案結束 ----

    7. 開始執行參數檔:(一樣,要執行三次以上)

    8. /usr/local/mrtg-2/bin/mrtg  /usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu
       
    9. 寫入 /etc/crontab 當中:

    10. */2 * * * * root /usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu > /dev/null 2>&1

      這樣就OK了,直接將 Web 指向

重點說完了!再來說說 sar 吧!基本上, sar 可以用來偵測很多的咚咚,例如:
  • sar -u 1 5 :每一秒鐘測一次 cpu ,共計五次後算平均;
  • sar -r 3 3:每三秒看一次實體與虛擬記憶體用量,三次後算平均!
  • 其他的功能有待你的發掘囉!

  • 即時偵測線上人數
    如果您曾經上過的話,您會發現『咦!他們有偵測即時的上線人數(online users)呢!』同樣的,她們也是使用 MRTG 這一套相當漂亮的軟體來達成這個目標!那,要如何達到這個目標呢?其實也是很簡單,我們剛剛不是已經介紹了, mrtg 其實只要接受到 2 個數字就可以繪圖了嗎?那這裡就給他兩個數字就可以啦!兩個數字從何而來?如果您知道 netstat 這個指令的話,就會發現,當您下達 netstat -a 的時候,會有這個咚咚會出現:
     
    [root @tsai root]# netstat -a | more
    Active Internet connections (including servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 *:ftp                   *:*                     LISTEN
    tcp        0      0 *:telnet                *:*                     LISTEN
    tcp        0      0 *:pop-2                 *:*                     LISTEN
    tcp        0      0 *:pop-3                 *:*                     LISTEN
    tcp        0      0 *:imap2                 *:*                     LISTEN
    tcp        0      0 *:smtp                  *:*                     LISTEN
    tcp        0      0 *:www                   *:*                     LISTEN
    tcp        0      0 tsai.adsldns.org:www    211.72.119.19:58298     SYN_RECV
    tcp        0      0 *:mysql                 *:*                     LISTEN
    tcp        0      0 *:netbios-ssn           *:*                     LISTEN
    tcp        0  57920 tsai.adsldns.org:www    211.75.193.100:2965     ESTABLISHED
    tcp        0  57920 tsai.adsldns.org:www    211.75.193.100:2966     ESTABLISHED
    tcp        0  57920 tsai.adsldns.org:www    211.75.193.100:2967     ESTABLISHED
    tcp        0  57920 tsai.adsldns.org:www    211.75.193.100:2968     ESTABLISHED
    tcp        0  57920 tsai.adsldns.org:www    211.75.193.100:2969     ESTABLISHED
    tcp        0      1 tsai.adsldns.org:www    202.98.131.11:4374      FIN_WAIT1
    tcp        0      1 tsai.adsldns.org:www    202.98.131.11:4404      FIN_WAIT1
    tcp        0      1 tsai.adsldns.org:www    202.98.131.11:4413      FIN_WAIT1
    tcp        0      1 tsai.adsldns.org:www    202.98.131.11:4453      FIN_WAIT1
    以下省略!

    我們可以很清楚的發現:使用 netstat 可以查到 WWW 的連線數目,那只要將這些數目作一些重複性分析,以去除重複的 IP 網址後,不就可以知道以 WWW 方法上網連線的即時人數了嘛!這就是我們偵測的主要原理了!

    那要如何寫這個偵測的批次檔呢?以下就是鳥哥嘗試寫的一個批次檔!你可以將一些註解符號取消,就可以知道為何這麼寫了:
     
    [root @tsai root]# vi mrtg.person.sh
    檔案開始:
    #!/bin/bash
    # 這個程式主要在計算有多少人以 WWW 的方式連線進我們的主機!

    # 1. 計算連線的數目
    echo `netstat -a | grep www|awk '{print $5}'|sort | wc -l|awk '{print$1 - 1}'`
    # 底下在說明整個咚咚的列出(檢查用) 
    # netstat -a | grep www|awk '{print $5}'|sort| uniq 

    # 2. 計算連線人數:
    echo `netstat -a | grep www|awk '{print $5}'|cut -d":" -f1|sort| uniq |wc -l | awk '{print $1 - 1}'`
    # netstat -a | grep www|awk '{print $5}'|cut -d":" -f1|sort| uniq 

    # 3. 輸出時間咚咚
      UPtime=`/usr/bin/uptime | awk '{print $3 " " $4 " " $5}'`
      echo $UPtime
      echo your.host.name
    檔案結束!

    在上面的式子中,你可以執行出你所需要的咚咚囉!你也可以將 這個檔案捉下去直接修改!所需要變更的就只有 最後一行的 your.host.name 要改囉!改成您的主機名稱吧!並且將這個檔案改成可以執行的狀態:

      chmod 755 mrtg.person
    即可!
    接下來則是修改 mrtg 的參數檔啦!我們可以建立一個名稱為 mrtg.cfg.person 的參數檔,內容有點像這樣!
     
    [root @tsai root]# vi mrtg.cfg.person
    檔案開始:
    # Created by
    #          VBird 2001/10/29

    ### Global Config Options
    WorkDir: /usr/local/apache/htdocs/mrtg <==請改成您圖表放置的目錄
    Language: big5 

    ### CPU Loading detecting ...
    Target[tsai.adsldns.org_person]: `/usr/local/mrtg-2/bin/mrtg.person.sh` <==檔案放置的路徑與檔名
    MaxBytes[tsai.adsldns.org_person]: 500
    Options[tsai.adsldns.org_person]: gauge, nopercent, growright
    YLegend[tsai.adsldns.org_person]: Online Users
    ShortLegend[tsai.adsldns.org_person]: %
    LegendI[tsai.adsldns.org_person]:   連線數目 :
    LegendO[tsai.adsldns.org_person]:   上線人數 :
    Title[tsai.adsldns.org_person]: WWW 上線人數統計表
    PageTop[tsai.adsldns.org_person]:

    WWW 主機上線人數


     
        
      
     
    System:Aerosol Lab. in Redhat 6.1 Kernel 2.2.18
    Maintainer: VBird

    檔案結束!

    要注意的僅是 `/usr/local/mrtg-2/bin/mrtg.person.sh` 這一行字!這個就是我們剛剛才寫成的 scripts 啦!然後同樣的,執行

      ./mrtg mrtg.cfg.person
    三次之後,就可以正常的產生圖表啦!
    然後在將您的圖表加在 index.html 網頁中,如此則可以即時的偵測與記錄上線人數的統計囉!當然,如果您修改一下上面的 script (mrtg.person.sh),將 www 改成 ftp 的話,那就等於是偵測 ftp 的即時上線人數!如何!簡單吧!
    祝大家架站愉快!

  • 在 Linux 主機上偵測 windows 2000 的網路流量
    好了!我們現在已經可以在 Linux 系統上面偵測任何咚咚啦!那如果要偵測 windows 2000 要如何作呢?其實也真是很簡單,(1) 你要先在 windows 2000 上面安裝 SNMP 通訊協定的套件;(2) 在 Linux 上面針對 windows 2000 進行參數檔的偵測; (3) 做成網頁輸出!簡單的很!
    1. Windows 2000 下啟動 snmp 服務:

    2. windows 2000 這個系統底下已經有預設的 snmp 通訊協定了,只要開放他即可!那要如何開放呢?你可以開啟『開始』>『設定』>『控制台』>『新增移除程式』>『新增/移除 Windows 元件』。然後就像下面兩張圖一樣,先勾選 Management and Monitoring Tools ,之後選擇 『詳細資料』 之後,出現的圖示中,選擇勾選 Simple Network Management Protocol ,然後按下確定之後,就開始安裝啦!在安裝的過程中,安裝程式會要求你放入 windows 2000 的 CD 進入 CD-ROM ,安裝完畢之後就已經有 SNMP 的通訊協定啦!
    3. 在 Linux 上面針對 windows 2000 進行 MRTG 的參數偵測:

    4. 接下來的工作跟之前的工作就差不多啦!先來建立參數檔吧,如何建立呢?假設你的 Windows 2000 的 IP 是 192.168.1.11 ,那麼你就必須要這樣來偵測 Windows 2000 的參數:
       
      [root@vbird mrtg]# /usr/local/mrtg-2/bin/cfgmaker public@192.168.1.11 > mrtg.cfg.vbird

      注意囉! public 是預設的指令,後面接的是你的 IP (當然也可以是 domain 說)。這樣一來,就可以做出一個參數檔案,名稱為 mrtg.cfg.vbird,我們來看一看這個檔案的大概內容吧!
       

      [root@vbird mrtg]# vi mrtg.cfg.vbird
      # Created by
      # /usr/local/mrtg-2/bin/cfgmaker public@192.168.1.11
      ### Global Config Options
      WorkDir: /usr/local/apache/htdocs/mrtg/
      Options[_]: growright, bits

      Target[192.168.1.11_16777219]: 16777219:public@192.168.1.11:
      SetEnv[192.168.1.11_16777219]: MRTG_INT_IP="192.168.1.11" MRTG_INT_DESCR="NDIS 5
      .0 driver"
      MaxBytes[192.168.1.11_16777219]: 1250000
      Title[192.168.1.11_16777219]: Traffic Analysis for 16777219 -- VBLAB2
      PageTop[192.168.1.11_16777219]:

      Traffic Analysis for 16777219 -- VBLAB2


       
             
        
        
             
             
          
                 
       
      System:VBLAB2 in
      Maintainer:
      Description:NDIS 5.0 driver
      ifType:ethernetCsmacd (6)
      ifName:
      Max Speed:1250.0 kBytes/s
      Ip:192.168.1.11 ()

       

      其他的設定不太需要改變,但是上面黃色的那兩行字中,請注意,修改成你的『工作目錄』與一些設定吧!最好是將一些圖表資料都放一起就好了!這樣子大概就OK啦!
       
    5. 做成網頁輸出:

    6. 這一步跟前面就都一樣啦,先執行 mrtg mrtg.cfg.vbird(你的參數檔名)三次,然後在將輸出的圖表寫在你的 index.html 上面即可!這樣就已經可以偵測 windows 2000 的網路流量啦!而且還不需要在 windows 2000 上面有任何的咚咚發生喔!

  • 在 Linux 主機上偵測 windows 98 的網路流量
MRTG 流量偵測到此為止介紹的都是屬於 NT 或者是 Linux 上面的訊息,那要如何偵測 Windows 98 的系統呢?畢竟使用這個系統的用戶並不少呀!OK!偵測 Windows 系統,最主要的就是要有 snmp 啦!只要有 snmp 之後,往後的工作就都完全一模一樣了!哪我們就在 Windows98 上面安裝 snmp 的服務吧!其實, snmp 套件已經在 windows 98 的原版光碟中了,你可以到原版 98 光碟的 /tools/reskit/netadmin/snmp 這個路徑下找到以下僅提供 snmp 在 windows98 下的安裝方法,至於偵測的方法則與 Windows 2000 的情況一模一樣!目前我已經在 Linux 上以 MRTG 成功的將研究室所有的電腦之網路卡流量偵測了!往後將可便利於管理整個研究室的網路流量,並可以藉以分析是否有不明人士亂玩網路.....
  1. 你可以在 windows 98 下按下『開始』>『控制台』>『網路』,或者是在桌面的『網路上的芳鄰』按『右鍵』選『內容』,會出現如下方框:

  2. 請按下『新增』之後,出現:

  3. 選擇『服務』的項目後,並按下『新增』:

  4. 然後再選擇『從磁片安裝』這一項!並將你的 snmp 套件指向你的原版 windows 98 光碟!

  5. 按下確定之後,再按一次確定!即可安裝 snmp 套件囉!

  6. 就像這樣,出現了這個東西!按下確定吧!開始安裝囉!

  7. 有沒有看到如下圖所示! Microsoft SNMP agent 已經出現了!表示安裝完畢!


  • 一些問題彙整
在寫出這一篇文章之後,收到網友們的熱情支持!讓小弟不甚惶恐!不過,這裡面也出現了一些問題是當初所沒有發現的!以下就來說說問題的所在吧!
  1. 我的 Red Hat 本身就有 snmp 了,可不可以不要安裝 ucd-snmp 這個套件呢?

  2. 當然了,Red Hat 本身就有 snmp 這個通訊服務存在了,可能的話當然就不要去動他比較好囉!不過,要讓你的 Red Hat 預設的 snmp 能動,那就一定需要修改 /etc/snmp/snmpd.conf 這個檔案!不過,小弟對於 snmpd.conf 的設定還不是很瞭解!因此,就會直接建議您,乾脆移除預設的 ucd-snmp 之後,重新安裝新版的吧!設定上比較簡單啦!當然,如果您英文不錯的話, /etc/snmp/snmpd.conf 這個檔案可要多看一些喔!
     
  3. 為何作完了 ./cfgmaker 這個動作之後,再執行 ./mrtg 時,會出現:『ERROR: Line 9 』的問題?

  4. 這個是大家最容易犯的錯了,其實,就是在 public@your.hosts.name 這一個地方寫錯了!請千萬注意, public 是有意義的代碼,請不要將這一行寫成你的 e-mail 了!不然就會造成錯誤情況發生!
     


    參考資料: 高健智、賴阿福:Linux 網路實作經典之高手究極篇,知城出版社;
来源:http://linux.vbird.org/linux_security/old/04mrtg.php

阅读(753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~