偵測 Linux 上面的流量 【鸟哥】
来源:互联网 发布:mtv电子相册制作软件 编辑:程序博客网 时间:2024/05/21 15:02
安裝前的準備工作
開始安裝 MRTG
偵測網路卡流量
偵測 CPU 負載量
即時偵測線上人數 (2001/10/29 update)
在 Linux 上面偵測 Win2000 的流量 (2001/11/05update)
在 Linux 上面偵測 Windows98 的流量 (2001/11/06update)
一些問題彙整
- 開始安裝 MRTG
由於 MRTG 是透過 SNMP 通訊協定來要求資料,因此你的Linux 上面需要先安裝相關的軟體,通常我們都是安裝 ucd-snmp 這套軟體的,那就來安裝吧!
- 下載 ucd-snmp-4.2.1.tar.gz,mrtg-2.9.17.tar.gz;
- 安裝 ucd-snmp-4.2.1.tar.gz:[root @tsai/root]# cd /usr/local/src
[root @tsaisrc]# cp /root/ucd-snmp-4.2.1.tar.gz .
[root @tsaisrc]# tar -zxvf ucd-snmp-4.2.1.tar.gz
[root @tsaisrc]# cd ucd-snmp-4.2.1
[root @tsaiucd-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
applicationsare to function.After the configure script finishes, you can browse the newly
created config.hfile for further - less important - parameters to
modify. Be careful if you re-run configure though since config.h will
be over written.-Press returnto continue-(這裡按 enter 吧)
disabling aboveprompt for future runs... yes
checking SystemContact Information...
*** System ContactInformation:
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 BeOver-Ridden Using The "syscontact" Syntax In The Agent'S
ConfigurationFiles.System ContactInformation (root@):root@tsai.adsldns.org(這裡輸入你的e-mail)
setting SystemContact Information to... root@tsai.adsldns.org
checking SystemLocation...
*** System Location:
Describes the location of the system. This information is
available inthe 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 SystemLocation to... RedHat 6.1
checking Locationto write logfile...
*** Logfilelocation:
Enter the default location for the snmpd agent to dump
information& errors to. If not defined (enter the keyword "none"
at the promptbelow) the agent will use stdout and stderr instead.
(Note: Thisvalue can be over-ridden using command line options.)Location towrite logfile (/var/log/snmpd.log):(按 enter即可)
setting Locationto write logfile to... /var/log/snmpd.log
checking Locationto write persistent information...
*** snmpd persistentstorage location:
Enter a directory for the snmp library to store persistent
data in theform of a configuration file.Location towrite persistent information (/var/ucd-snmp):(按enter 即可)
[root @tsaiucd-snmp-4.2.1]# make
上面輸入的資訊,在進行 MRTG 的製圖時,會顯示在圖表上面,不過,這也是可以改的資訊,所以,如果不小心輸入錯誤也沒關係的。這樣就將ucd-snmp 安裝妥當了!
[root @tsaiucd-snmp-4.2.1]# make install
- 啟動 ucd-snmp :
直接在 shell 下面打上 /usr/local/snmp/sbin/snmpd即可!或者直接加在 /etc/rc.d/rc.local 當中,就可以自動開機時啟動了!
- 安裝 MRTG :[root@tsai /root]# cd /usr/local/src
[root @tsaisrc]# cp /root/mrtg-2.9.17.tar.gz .
[root @tsaisrc]# tar -zxvf mrtg-2.9.17.tar.gz
[root @tsaisrc]# cd mrtg-2.9.17
[root @tsaimrtg-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 @tsaimrtg-2.9.17]# make; make install
就樣就安裝妥當了!再來就是開始要設定 MRTG 的組態囉!
[root @tsaimrtg-2.9.17]# mkdir /usr/local/apache/htdocs/mrtg(請注意,這裡與你的WWW 主頁的放置地點有關,請依你的系統來設定,另外,由於我們需要設定 網路流量、CPU與RAM使用率,因此在mrtg 中,可以再建立三個子目錄,比較容易管理啦!)
[root @tsaimrtg-2.9.17]# mkdir /usr/local/apache/htdocs/mrtg/net
[root @tsaimrtg-2.9.17]# cp images/* /usr/local/apache/htdocs/mrtg/net(將一些影像檔拷貝到即將使用的目錄中去備用)
- 偵測網路卡流量
要使用 mrtg 來作圖真的是太簡單了,只要幾個小步驟就可以自動的監測流量喔!首先以mrtg 附的程式來製作一個參數檔 (預設檔名是 mrtg.cfg),然後修改一下 mrtg.cfg這個參數檔之後,在直接執行三次參數檔,之後以 mrtg 程式附的小軟體,直接製作成首頁,就可以察看圖表囉!看下去吧!
- 設定 MRTG:[root @tsaimrtg-2.9.17]# cd /usr/local/mrtg-2/bin
[root @tsaibin]# ./cfgmaker --output=/usr/local/apache/htdocs/mrtg/net/mrtg.cfg \
> public@vbird.adsldns.org
上面這個步驟會在你的主機上面製造一個參數檔,
而你未來的設定都會自動的在這個參數檔中設定完成了![root @tsaibin]# vi /usr/local/apache/htdocs/mrtg/net/mrtg.cfg
不過由於程式自動設定的mrtg.cfg 有些地方會有瑕疵,
因此,請將底下這三行修改成你的樣式喔!
WorkDir: /usr/local/apache/htdocs/mrtg/net/
Options[_]:growright, bits
Language: big5[root @tsaibin]# ./mrtg /usr/local/apache/htdocs/mrtg/net/mrtg.cfg
開始測試你的參數檔,正常的話,進行
這個動作要執行三次,就可以正常工作了,
不過,若是有問題的話,就需要改mrtg.cfg ,再執行直到沒有錯誤發生為止![root @tsaibin]# ./indexmaker \
上面請特別注意:在 public@vbird.adsldns.org 這一行呢,public是有其意義的(在 snmp 這個通訊服務裡面的預設搜尋的一個代碼),所以,如果你的主機的動態DNS 名稱為 your.domain.name 則你就『一定』要寫成 public@your.domain.name才行!千萬不要弄錯了!已經有很多網友遇到這個問題!
> --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中,就是主網頁啦!
- 設定五分鐘偵測一次:
好了,開始偵測吧,就修改 /etc/crontab 吧![root @tsaibin]# vi /etc/crontab#1. Runing TheMRTG Net Flow Control
這樣就每五分鐘可以自動偵測一次網路卡的流量囉!
*/5 * * * *root /usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/net/mrtg.cfg> /dev/null 2>&1
- 設定 Web site:
以上面的例子為例,則你的 mrtg 圖表在:
http://your.host.domain/mrtg/net/index.html
就可以看到你的主機上網路卡的流量囉!
- 好了,重點說完了,再來說說在 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 上面過,是可以使用的!
- 下載並安裝 sysstat-4.0.2-1.i386.rpm:
不要說還不會使用 rpm 安裝套件喔!打屁屁!
rpm -ivh sysstat-4.0.2-1.i386.rpm
- 編寫外掛程式:
以安裝完 sysstat 套件後,產生的 /usr/bin/sar程式進行外掛程式的編寫,我寫了一個監測 CPU 的小程式,使用 bash 寫的,可以參考看看:[root @tsaicpu]# 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
echovbird.adsldns.org (這裡寫你的主機名稱)
---- 檔案結束----[root @tsaicpu]# chmod 755 mrtg.cpu(設定成可執行)
[root @tsaicpu]# ./mrtg.cpu(測試看可執行否)
2.0
5.4
1 day, 22:30,
vbird.adsldns.org - 開始設定 mrtg 參數檔:
我的參數檔有點像這樣:[root @tsaicpu]# vi mrtg.cfg.cpu---- 檔案開始----
### GlobalConfig Options
### To getbits instead of bytes and graphs growing to the right
WorkDir: /usr/local/apache/htdocs/mrtg/cpu/
Language: big5Target[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]:<H1>VBird 主機 CPU 負載率</H1>
<TABLE>
<TR><TD>System:</TD> <TD>RedHat 6.1in Linux Kernel 2.2.19</TD></TR>
</TABLE>
---- 檔案結束---- - 開始執行參數檔:(一樣,要執行三次以上)
/usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu
- 寫入 /etc/crontab 當中:
*/2 * * * * root /usr/local/mrtg-2/bin/mrtg/usr/local/apache/htdocs/mrtg/cpu/mrtg.cfg.cpu > /dev/null 2>&1這樣就OK了,直接將 Web 指向 http://your.host.domain/mrtg/cpu/localhost.html
重點說完了!再來說說 sar 吧!基本上,sar 可以用來偵測很多的咚咚,例如:
- sar -u 1 5 :每一秒鐘測一次cpu ,共計五次後算平均;
- sar -r 3 3:每三秒看一次實體與虛擬記憶體用量,三次後算平均!
- 其他的功能有待你的發掘囉!
- 即時偵測線上人數
- 如果您曾經上過中山大學的FTP 網站的話,您會發現『咦!他們有偵測即時的上線人數(onlineusers)呢!』同樣的,她們也是使用 MRTG 這一套相當漂亮的軟體來達成這個目標!那,要如何達到這個目標呢?其實也是很簡單,我們剛剛不是已經介紹了,mrtg 其實只要接受到 2 個數字就可以繪圖了嗎?那這裡就給他兩個數字就可以啦!兩個數字從何而來?如果您知道netstat 這個指令的話,就會發現,當您下達 netstat -a 的時候,會有這個咚咚會出現:
[root @tsairoot]# netstat -a | more
Active Internetconnections (including servers)
Proto Recv-QSend-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 @tsairoot]# 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
echoyour.host.name
檔案結束!
在上面的式子中,你可以執行出你所需要的咚咚囉!你也可以將mrtg.person.sh這個檔案捉下去直接修改!所需要變更的就只有 最後一行的 your.host.name 要改囉!改成您的主機名稱吧!並且將這個檔案改成可以執行的狀態:
- chmod 755 mrtg.person
- 接下來則是修改 mrtg 的參數檔啦!我們可以建立一個名稱為mrtg.cfg.person 的參數檔,內容有點像這樣!
[root @tsairoot]# vi mrtg.cfg.person
檔案開始:
# Created by
# VBird 2001/10/29
### Global ConfigOptions
WorkDir: /usr/local/apache/htdocs/mrtg<==請改成您圖表放置的目錄
Language: big5
### CPU Loadingdetecting ...
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]:<H1> WWW 主機上線人數 </H1>
<TABLE>
<TR><TD>System:</TD> <TD>Aerosol Lab. in Redhat 6.1 Kernel 2.2.18</TD></TR>
<TR><TD>Maintainer:</TD> <TD>VBird</TD></TR>
</TABLE>
檔案結束!
要注意的僅是 `/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) 做成網頁輸出!簡單的很!
- Windows 2000 下啟動 snmp 服務:
windows 2000 這個系統底下已經有預設的 snmp 通訊協定了,只要開放他即可!那要如何開放呢?你可以開啟『開始』>『設定』>『控制台』>『新增移除程式』>『新增/移除Windows 元件』。然後就像下面兩張圖一樣,先勾選Managementand Monitoring Tools ,之後選擇 『詳細資料』之後,出現的圖示中,選擇勾選Simple NetworkManagement Protocol ,然後按下確定之後,就開始安裝啦!在安裝的過程中,安裝程式會要求你放入windows 2000 的 CD 進入 CD-ROM ,安裝完畢之後就已經有 SNMP 的通訊協定啦! - 在 Linux 上面針對 windows 2000 進行 MRTG 的參數偵測:
接下來的工作跟之前的工作就差不多啦!先來建立參數檔吧,如何建立呢?假設你的Windows 2000 的 IP 是 192.168.1.11 ,那麼你就必須要這樣來偵測 Windows 2000的參數:
[root@vbirdmrtg]# /usr/local/mrtg-2/bin/cfgmakerpublic@192.168.1.11> mrtg.cfg.vbird注意囉! public 是預設的指令,後面接的是你的 IP(當然也可以是 domain 說)。這樣一來,就可以做出一個參數檔案,名稱為 mrtg.cfg.vbird,我們來看一看這個檔案的大概內容吧!
[root@vbirdmrtg]# vi mrtg.cfg.vbird
# Created by
# /usr/local/mrtg-2/bin/cfgmakerpublic@192.168.1.11
### GlobalConfig Options
WorkDir: /usr/local/apache/htdocs/mrtg/
Options[_]:growright, bitsTarget[192.168.1.11_16777219]:16777219:public@192.168.1.11:
其他的設定不太需要改變,但是上面黃色的那兩行字中,請注意,修改成你的『工作目錄』與一些設定吧!最好是將一些圖表資料都放一起就好了!這樣子大概就OK啦!
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]:<H1>Traffic Analysis for 16777219 -- VBLAB2</H1>
<TABLE>
<TR><TD>System:</TD> <TD>VBLAB2 in</TD></TR>
<TR><TD>Maintainer:</TD> <TD></TD></TR>
<TR><TD>Description:</TD><TD>NDIS 5.0 driver</TD></TR>
<TR><TD>ifType:</TD> <TD>ethernetCsmacd(6)</TD></TR>
<TR><TD>ifName:</TD> <TD></TD></TR>
<TR><TD>Max Speed:</TD> <TD>1250.0 kBytes/s</TD></TR>
<TR><TD>Ip:</TD> <TD>192.168.1.11 ()</TD></TR>
</TABLE>
- 做成網頁輸出:
這一步跟前面就都一樣啦,先執行 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 成功的將研究室所有的電腦之網路卡流量偵測了!往後將可便利於管理整個研究室的網路流量,並可以藉以分析是否有不明人士亂玩網路.....
- 你可以在 windows 98 下按下『開始』>『控制台』>『網路』,或者是在桌面的『網路上的芳鄰』按『右鍵』選『內容』,會出現如下方框:
- 請按下『新增』之後,出現:
- 選擇『服務』的項目後,並按下『新增』:
- 然後再選擇『從磁片安裝』這一項!並將你的 snmp 套件指向你的原版windows 98 光碟!
- 按下確定之後,再按一次確定!即可安裝 snmp 套件囉!
- 就像這樣,出現了這個東西!按下確定吧!開始安裝囉!
- 有沒有看到如下圖所示! Microsoft SNMP agent 已經出現了!表示安裝完畢!
- 一些問題彙整
在寫出這一篇文章之後,收到網友們的熱情支持!讓小弟不甚惶恐!不過,這裡面也出現了一些問題是當初所沒有發現的!以下就來說說問題的所在吧!
- 我的 Red Hat 本身就有 snmp 了,可不可以不要安裝 ucd-snmp這個套件呢?
當然了,Red Hat 本身就有 snmp 這個通訊服務存在了,可能的話當然就不要去動他比較好囉!不過,要讓你的Red Hat 預設的 snmp 能動,那就一定需要修改 /etc/snmp/snmpd.conf 這個檔案!不過,小弟對於snmpd.conf 的設定還不是很瞭解!因此,就會直接建議您,乾脆移除預設的 ucd-snmp之後,重新安裝新版的吧!設定上比較簡單啦!當然,如果您英文不錯的話, /etc/snmp/snmpd.conf這個檔案可要多看一些喔!
- 為何作完了 ./cfgmaker 這個動作之後,再執行 ./mrtg時,會出現:『ERROR: Line 9』的問題?
這個是大家最容易犯的錯了,其實,就是在 public@your.hosts.name這一個地方寫錯了!請千萬注意, public 是有意義的代碼,請不要將這一行寫成你的e-mail 了!不然就會造成錯誤情況發生!
- 前言:
- 先來『看看我們的流量統計範例』吧。
- 網路伺服器主機的資料總流量(網路卡的資料傳送總數),以及CPU 使用率和特殊服務(例如 squid 的代理服務)等等的封包傳送率(或者說是流量),是網路管理人員所必須要注意的事項,因為當主機的CPU 使用率過高的時候,系統可能呈現不穩定的狀態,而當流量過高的時候,就需要注意是哪一個服務或者是哪一個傢伙在嘗試竊取我們的資料呢?因此,網路管理方面,有必要瞭解一下,我們主機的流量狀態,並視流量來加以限制或者是加大頻寬!
- 目前網路上有一套蠻好用軟體可以用來偵測主機的資料流量,這也是各大伺服器常使用的軟體,就是MRTG (Multi Router Traffic Grapher) 這一套軟體。MRTG 耗用的系統資源很小,因此有很多外掛的程式也依附在MRTG 底下,因為 MRTG 的繪圖挺漂漂的說!我們這裡僅提供下面的偵測方法:
- 網路卡整體流量;(或者說是 Router 整體流量)
- CPU 使用率;
- RAM 使用率。
- MRTG 的運作過程:
- 要瞭解 MRTG 的運作,就必須瞭解一下 SNMP (Simple NetworkManagement Protocol) 這個協定,因為 MRTG 是透過SNMP 協定來監控流量的。所以,所有的 MRTG 所偵測的裝置都必須符合SNMP 的協定。那什麼是 SNMP 呢?簡單的說,就是一種可以提供裝置(主機設備)的各類資訊的一種協定,諸如:網路流量、主機名稱、CPU用量等等的資訊都可以藉由此一協定來提供。不過,由於不同廠牌的裝置可能會有無法相容的情況,因而後來又有所謂MIB (Management Information Base) 的協定產生。不論如何, MRTG 就是藉由SNMP 這個協定來監測與取得相關的資訊以製作圖表的!詳細的 SNMP 你可以在http://www.net-snmp.org/查得。
- 所以我們可以知道,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 的話,那就直接安裝下列的套件吧)
from
http://linux.vbird.org/linux_security/old/04mrtg.php
- 偵測 Linux 上面的流量 【鸟哥】
- linux的流量控制
- linux的流量监控mrtg
- Timesten在linux上面的安装步骤
- linux上面的sz,rz命令
- 修改linux上面的显示时间
- Android 上面的Linux C程序
- SQLite在嵌入式linux上面的移植
- 修改linux上面时间的方法
- Jetty9.3.9在Linux上面的安装
- Linux 主机及网络上面的 FAQ
- yii在Linux上面碰到的问题
- Linux上面安装oracle11g的全过程
- Linux 各种查看网卡流量的方法
- linux 查看网卡流量的shell脚本
- linux查看网口流量的脚本
- Linux简单的流量监控及限制
- Linux流量控制的参考文档
- 一些装B|搞笑的话(收集)
- struts2 如何回显要修改的个属性内容
- zoj 1008 DFS
- 安卓手机共享上网
- 马上就要上班了
- 偵測 Linux 上面的流量 【鸟哥】
- ON_COMMAND_RANGE 多个按钮响应一个函数
- witre nagios plugin with python
- nagios python template
- 使用Eclipse构建Maven的SpringMVC项目
- sscanf切割字符串
- Algorithm Practice for 1579
- [Android]酷派8150手机安卓2.3.7系统不能发现Adhoc网络
- [gpu pro]《正当防卫2》渲染技术