Linux伺服器上監控網絡帶寬的18個常用指令
本文介紹了一些可以用來監控網絡使用情況的Linux指令行工具。這些工具可以監控通過網絡接口傳輸的資料,并測量目前哪些資料所傳輸的速度。入站流量和出站流量分開來顯示。
這些工具使用不同的機制來制作流量報告。nload等一些工具可以讀取"proc/net/dev"檔案,以獲得流量統計資訊;而一些工具使用pcap庫來捕獲所有資料包,然後計算總資料量,進而估計流量負載。
下面是按功能劃分的指令名稱。
- 監控總體帶寬使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
- 監控總體帶寬使用(批量式輸出)――vnstat、ifstat、dstat和collectl
- 每個套接字連接配接的帶寬使用――iftop、iptraf-ng、tcptrack、pktstat、netwatch和trafshow
- 每個程序的帶寬使用――nethogs
- nagiosweb------nagios
1. nload

nload是一個指令行工具,讓使用者可以分開來監控入站流量和出站流量。它還可以繪制圖表以顯示入站流量和出站流量,視圖比例可以調整。用起來很簡單,不支援許多選項。
是以,如果你隻需要快速檢視總帶寬使用情況,無需每個程序的詳細情況,那麼nload用起來很友善。結果是bit/s
- $ nload
安裝nload:Fedora和Ubuntu在預設軟體庫裡面就有nload。CentOS使用者則需要從Epel軟體庫獲得nload。
2. iftop
iftop可測量通過每一個套接字連接配接傳輸的資料;它采用的工作方式有别于nload。iftop使用pcap庫來捕獲進出網絡擴充卡的資料包,然後彙總資料包大小和數量,搞清楚總的帶寬使用情況。
雖然iftop報告每個連接配接所使用的帶寬,但它無法報告參與某個套按字連接配接的程序名稱/編号(ID)。不過由于基于pcap庫,iftop能夠過濾流量,并報告由過濾器指定的所標明主機連接配接的帶寬使用情況。
- $ sudo iftop -n
n選項可以防止iftop将IP位址解析成主機名,解析本身就會帶來額外的網絡流量。
安裝iftop:Ubuntu/Debian/Fedora使用者可以從預設軟體庫獲得它。CentOS使用者可以從Epel獲得它。
3. iptraf
iptraf是一款互動式、色彩鮮豔的IP區域網路監控工具。它可以顯示每個連接配接以及主機之間傳輸的資料量。下面是螢幕截圖。
- $ sudo iptraf
4. nethogs
nethogs是一款小巧的"net top"工具,可以顯示每個程序所使用的帶寬,并對清單排序,将耗用帶寬最多的程序排在最上面。萬一出現帶寬使用突然激增的情況,使用者迅速打開nethogs,就可以找到導緻帶寬使用激增的程序。nethogs可以報告程式的程序編号(PID)、使用者和路徑。
- $ sudo nethogs
安裝nethogs:Ubuntu、Debian和Fedora使用者可以從預設軟體庫獲得。CentOS使用者則需要Epel。
5. bmon
bmon(帶寬監控器)是一款類似nload的工具,它可以顯示系統上所有網絡接口的流量負載。輸出結果還含有圖表和剖面,附有資料包層面的詳細資訊。
安裝bmon:Ubuntu、Debian和Fedora使用者可以從預設軟體庫來安裝。CentOS使用者則需要安裝repoforge,因為Epel裡面沒有bmon。
bmon支援許多選項,能夠制作HTML格式的報告。欲知更多資訊,請參閱參考手冊頁。
6. slurm
slurm是另一款網絡負載監控器,可以顯示裝置的統計資訊,還能顯示ASCII圖形。它支援三種不同類型的圖形,使用c鍵、s鍵和l鍵即可激活每種圖形。slurm功能簡單,無法顯示關于網絡負載的任何更進一步的詳細資訊。
- $ slurm -s -i eth0
7. tcptrack
tcptrack類似iftop,使用pcap庫來捕獲資料包,并計算各種統計資訊,比如每個連接配接所使用的帶寬。它還支援标準的pcap過濾器,這些過濾器可用來監控特定的連接配接。
安裝tcptrack:Ubuntu、Debian和Fedora在預設軟體庫裡面就有它。CentOS使用者則需要從RepoForge獲得它,因為Epel裡面沒有它。
8. vnstat
vnstat與另外大多數工具有點不一樣。它實際上運作背景服務/守護程序,始終不停地記錄所傳輸資料的大小。之外,它可以用來制作顯示網絡使用曆史情況的報告。
- $ service vnstat status
- * vnStat daemon is running
運作沒有任何選項的vnstat,隻會顯示自守護程序運作以來所傳輸的資料總量。
- $ vnstat
- Database updated: Mon Mar 17 15:26:59 2014
- eth0 since 06/12/13
- rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB
- monthly
- rx | tx | total | avg. rate
- ------------------------+-------------+-------------+-------------
- Feb '14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s
- Mar '14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s
- estimated 9.28 GiB | 2.83 GiB | 12.11 GiB |
- daily
- yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s
- today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s
- estimated 199 MiB | 63 MiB | 262 MiB |
想實時監控帶寬使用情況,請使用"-l"選項(實時模式)。然後,它會顯示入站資料和出站資料所使用的總帶寬量,但非常精确地顯示,沒有關于主機連接配接或程序的任何内部詳細資訊。
- $ vnstat -l -i eno1
- Monitoring eth0... (press CTRL-C to stop)
- rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s
vnstat更像是一款制作曆史報告的工具,顯示每天或過去一個月使用了多少帶寬。它并不是嚴格意義上的實時監控網絡的工具。
vnstat支援許多選項,支援哪些選項方面的詳細資訊請參閱參考手冊頁。
9. bwm-ng
bwm-ng(下一代帶寬監控器)是另一款非常簡單的實時網絡負載監控工具,可以報告摘要資訊,顯示進出系統上所有可用網絡接口的不同資料的傳輸速度。
- $ bwm-ng
- bwm-ng v0.6 (probing every 0.500s), press 'h' for help
- input: /proc/net/dev type: rate
- / iface Rx Tx T
- ot=================================================================
- == eth0: 0.53 KB/s 1.31 KB/s 1.84
- KB lo: 0.00 KB/s 0.00 KB/s 0.00
- KB-------------------------------------------------------------------------------------------------------------
- total: 0.53 KB/s 1.31 KB/s 1.84
- KB/s
如果控制台足夠大,bwm-ng還能使用curses2輸出模式,為流量繪制條形圖。
- $ bwm-ng -o curses2
10. cbm:Color Bandwidth Meter
這是一款小巧簡單的帶寬監控工具,可以顯示通過諸網絡接口的流量大小。沒有進一步的選項,僅僅實時顯示和更新流量的統計資訊。
11. speedometer
這是另一款小巧而簡單的工具,僅僅繪制外觀漂亮的圖形,顯示通過某個接口傳輸的入站流量和出站流量。
- $ speedometer -r eth0 -t eth0
12. pktstat
pktstat可以實時顯示所有活動連接配接,并顯示哪些資料通過這些活動連接配接傳輸的速度。它還可以顯示連接配接類型,比如TCP連接配接或UDP連接配接;如果涉及HTTP連接配接,還會顯示關于HTTP請求的詳細資訊。
- $ sudo pktstat -i eth0 -nt
13. netwatch
netwatch是netdiag工具庫的一部分,它也可以顯示本地主機與其他遠端主機之間的連接配接,并顯示哪些資料在每個連接配接上所傳輸的速度。
- $ sudo netwatch -e eth0 -nt
14. trafshow
與netwatch和pktstat一樣,trafshow也可以報告目前活動連接配接、它們使用的協定以及每條連接配接上的資料傳輸速度。它能使用pcap類型過濾器,對連接配接進行過濾。
隻監控TCP連接配接
- $ sudo trafshow -i eth0 tcp
15. netload
netload指令隻顯示關于目前流量負載的一份簡短報告,并顯示自程式啟動以來所傳輸的總位元組量。沒有更多的功能特性。它是netdiag的一部分。
- $ netload eth0
16. ifstat
ifstat能夠以批處理式模式顯示網絡帶寬。輸出采用的一種格式便于使用者使用其他程式或實用工具來記入日志和分析。
- $ ifstat -t -i eth0 0.5
- Time eth0
- HH:MM:SS KB/s in KB/s out
- 09:59:21 2.62 2.80
- 09:59:22 2.10 1.78
- 09:59:22 2.67 1.84
- 09:59:23 2.06 1.98
- 09:59:23 1.73 1.79
安裝ifstat:Ubuntu、Debian和Fedora使用者在預設軟體庫裡面就有它。CentOS使用者則需要從Repoforge獲得它,因為Epel裡面沒有它。
17. dstat
dstat是一款用途廣泛的工具(用python語言編寫),它可以監控系統的不同統計資訊,并使用批處理模式來報告,或者将相關資料記入到CSV或類似的檔案。這個例子顯示了如何使用dstat來報告網絡帶寬。
- $ dstat -nt
- -net/total- ----system----
- recv send| time
- 0 0 |23-03 10:27:13
- 1738B 1810B|23-03 10:27:14
- 2937B 2610B|23-03 10:27:15
- 2319B 2232B|23-03 10:27:16
- 2738B 2508B|23-03 10:27:17
18. collectl
collectl以一種類似dstat的格式報告系統的統計資訊;與dstat一樣,它也收集關于系統不同資源(如處理器、記憶體和網絡等)的統計資訊。這裡給出的一個簡單例子顯示了如何使用collectl來報告網絡使用/帶寬。
- $ collectl -sn -oT -i0.5
- waiting for 0.5 second sample...
- # <----------Network---------->
- #Time KBIn PktIn KBOut PktOut
- 10:32:01 40 58 43 66
- 10:32:01 27 58 3 32
- 10:32:02 3 28 9 44
- 10:32:02 5 42 96 96
- 10:32:03 5 48 3 28
結束語
上述幾個使用友善的指令可以迅速檢查Linux伺服器上的網絡帶寬使用情況。不過,這些指令需要使用者通過SSH登入到遠端伺服器。另外,基于Web的監控工具也可以用來實作同樣的任務。
ntop和darkstat是面向Linux系統的其中兩個基本的基于Web的網絡監控工具。除此之外還有企業級監控工具,比如nagios,它們提供了一批功能特性,不僅僅可以監控伺服器,還能監控整個基礎設施。
原文連結:http://www.binarytides.com/linux-commands-monitor-network/
運用Ntop監控網絡流量
____ 網絡流量反映了網絡的運作狀态,是判别網絡運作是否正常的關鍵資料,在實際的網絡中,如果對網絡流量控制得不好或發生網絡擁塞,将會導緻網絡吞吐量下降、 網絡性能降低。通過流量測量不僅能反映網絡裝置(如路由器、交換機等)的工作是否正常,而且能反映出整個網絡運作的資源瓶頸,這樣管理人員就可以根據網絡 的運作狀态及時采取故障補救措施和進行相關的業務部署來提高網絡的性能。對網絡進行流量監測分析,可以建立網絡流量基準,通過連接配接會話數的跟蹤、源/目的 位址對分析、TCP流的分析等,能夠及時發現網絡中的異常流量,進行實時告警,進而保障網絡安全。本節将介紹的Ntop便可以提供詳細的網絡流量明細表。 在Ossim系統中內建了Ntop可以直接使用。
1.Ntop簡介
____ Ntop是一種監控網絡流量的工具,用NTOP顯示網絡的使用情況比其他一些網管軟體更加直覺、詳細。NTOP甚至可以列出每個節點計算機的網絡帶寬使用率。
2.Ntop主要功能
Ntop主要提供以下一些功能:
①.自動從網絡中識别有用的資訊;
②.将截獲的資料包轉換成易于識别的格式;
③.對網絡環境中通信失敗的情況進行分析;
④.探測網絡環境中的通信瓶頸,記錄網絡通信的時間和過程。
____ Ntop可以通過分析網絡流量來确定網絡上存在的各種問題;也可以用來判斷是否有黑客正在攻擊網絡系統;還可以很友善地顯示出特定的網絡協定、占用大量帶寬的主機、各次通信的目标主機、資料包的發送時間、傳遞資料包的延時等詳細資訊。
3. Ntop支援的協定
____ Ntop比MRTG更容易安裝,如果用手機話費來比喻流量,MRTG便如同提供總費用的電話賬單,而Ntop則是列出每一筆費用的明細一樣。目前市場上可 網管型的交換機、路由器都支援SNMP協定,Ntop支援簡單網絡管理協定,是以可以進行網絡流量監控。Ntop幾乎可以監測網絡上的所有協 議: TCP/UDP/ICMP、(R)ARP、IPX、Telnet、DLC、Decnet、DHCP-BOOTP、AppleTalk、 Netbios、TCP/UDP、FTP、HTTP、DNS、Telnet、SMTP/POP/IMAP、SNMP、NNTP、NFS、X11、SSH和 基于P2P技術的協定eDonkey。
4.Ntop支援插件
①.ICMPWATCH:
____ 用于端口檢測很多人都已經知道了可以借助NETSTAT -AN來檢視目前的連接配接與開放的端口,但NETSTAT并不萬能,比如Win2000遭到OOB 攻擊的時候,不等NETSTAT就已經當機了。為此,出現了一種特殊的小工具——端口監聽程式。端口監聽并不是一項複雜的技術,但卻能解決一些局部問題。
②.NetFlow:
____ 近年來,很多服務提供商一直使用NetFlow。因為NetFlow在大型廣域網環境裡具有伸縮能力,可以幫助支援對等點上的最佳傳輸流,同時可以用來進行建立在單項服務基礎之上的基礎設施最優化評估,解決服務和安全問題方面所表現出來的價值,為服務計費提供基礎。
③.rrdPlugin:
____ 用于生成流量圖。RRD的作者,也是MRTG的作者,RRD可以簡單的說是MRTG的更新版,它比MRTG更靈活,更适合用shell、perl等程式來調用,成生所要的圖檔。
④.sFlow:
____ sFlow(RFC 3176)是基于标準的最新網絡協定,能夠解決目前網絡管理人員面臨的很多問題。sFlow已經成為一項線速運作的“永遠線上”技 術,可以将sFlow技術嵌入到網絡路由器和交換機 ASIC晶片中。與使用鏡像端口、探針和旁路監測技術的傳統網絡監視解決方案相比,sFlow能夠明 顯地降低實施費用,同時可以使面向每一個端口的全企業網絡監視解決方案成為可能。與資料包采樣技術(如RMON)不同,sFlow是一種導出格式,它增加 了關于被監視資料包的更多資訊,并使用嵌入到網絡裝置中的sFlow代理轉發被采樣資料包,是以在功能和性能上都超越了目前使用的RMON、 RMON II和NetFlow技術。sFlow技術獨特之處在于它能夠在整個網絡中,以連續實時的方式監視每一個端口,但不需要鏡像監視端口,對整個網 絡性能的影響也非常小。
____ 另外,Ntop還允許使用者安裝插件用,以提供對于特定協定下具體統計資料的報告,如NFS和NetBIOS插件。當然,Ntop也可以生成運作它的主機的統計資料,列出開放套接字、接收和發送的資料以及每個過程的相關主機對。
二、 Ntop系統的部署
對于共享網絡,隻須将連接配接到共享網絡中的流量采集點的網絡接口置為混雜工作模式,就可實作采集網絡流量資料的功能。與交換網絡相比,網絡發生擁塞 時,集線器網絡的可靠性很低,SNMP問詢指令和回應資料包可能發生延遲或丢失,這時候Ntop檢測資料也就不準确了,對于交換網絡的情況,需要交換裝置 的支援(如具有SPAN端口的交換機)。流量采集主機連接配接到交換裝置的一個端口後,通過交換機的SPAN至 (Switched PortAnalyzer)端口把要分析的所有流量鏡像到該采集點上。SPAN在使用中非常靈活,可以監視交換機的單個端口,也可以 監視多個端口,還可以對VLAN進行監視。這就使流量異常監測系統具有了很大的靈活性。在一些流量比較大的企業,我們一般選用兩個網卡,一塊網卡作為 Ntop專用嗅探網卡,連到核心交換機的鏡像端口,另一塊配上IP位址并開放相應端口(預設是3000,也可以修改),連接配接交換機的作用是用來登入Web 界面進行管理,Ntop的部署如圖1所示。
圖1 Ntop的安裝位置
____ Ntop沒有自己的捕包工具,它需要一個外部的捕包程式庫:libpcap。Ntop利用libpcap獨立地從實體鍊路上進行捕包,它可以借助 libpcap的平台成為一個真正的與平台無關的應用程式。它直接從網卡捕包的任務由libpcap承擔,是以我們必須確定Linux系統下正确安裝了 libpcap。
三.Ntop安裝配置
____ Ntop工作時需要使用zlib、gd、libpcap及libpng的函數,安裝前須檢查伺服器中是否已經含有下列的軟體:zlib(zlib-1.1.3-xx以上)、gd(gd-1.3.xx以上)、libpng。可以使用RPM來确認:
rpm -qa | grep libpcap
rpm -qa | grep zlib
rpm -qa | grep gd
rpm -qa | grep libpng
如果發現缺少任何一個就需要自行安裝,舉例如下。
1.安裝libpcap
# tar zxvf libpcap-0.9.8.tar.gz
# cd libpcap-0.9.8
#./configure
# make&&make install
2.安裝RRDtool
____ RRDtool是指Round Robin Database 工具(環狀資料庫)。Round Robin是一種處理定量資料以及目前元素指針的技術。 想象一個周邊标有點的圓環,這些點就是時間存儲的位置。從圓心畫一條到圓周的某個點的箭頭,這就是指針。一個圓環上沒有起點和終點,可以一直存儲下去。經 過一段時間後,所有可用的位置都會被用過,該循環過程會自動重用原來的位置。這樣,資料集不會增大,并且不需要維護。
#tar -zxvf rrdtool-1.3.1.tar.gz
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
#make
#make install
3.安裝Ntop
下載下傳ntop安裝包: http://www.nmon.net/packages/rpm/x86_64/ntop/
#rpm -ivh ntop-3.3.10-.x86.rpm
#yum install ntop \\CentOS系統
#apt-get install ntop \\Debian 系統
____ 注意:在Ossim 系統中已經為我們安裝好Ntop軟體,可以直接使用。如果您選擇單獨安裝可以繼續參考以下内容。另外如果您使用Red Hat Linux 、Fedora或CentOS請首先關閉 SELinux功能。
4.建立Ntop使用者并配置權限
#useradd ntop
5.建立Ntop存放資料的目錄
#mkdir -p /var/ntop
#chown -R ntop.ntop /var/ntop
6.複制ntop.conf配置檔案
#cp /ntop-3.3.10/ntop.conf.sample /etc/ntop.conf
7.設定管理密碼
在執行ntop之前必須先建立管理者密碼,長度至少5位。使用參數-A建立管理者密碼
#ntop -A
8. Ntop 的管理者密碼重置方法
Ntop的使用者密碼檔案是經過加密存儲在ntop_pw.db檔案中,Ntop使用者密碼存儲位置:
64位版本:/var/lib/ntop_db_64/ntop_pw.db
64位版本需先删除其密碼檔案ntop_pw.db,然後用notp -A 重置管理者密碼後,最後重新開機ntop服務就能生效。
#/etc/init.d/ntop restart
另外,注意一個細節,ntop的通路日志位置在/var/log/ntop/目錄下,它的pcap log在/var/lib/ntop目錄下。
四、應用Ntop
1.啟動Ntop
#/usr/local/bin/ntop -i eth0 -d -L -u ntop -P /var/ntop --use-syslog=daemon
指令行中各項簡要介紹如下。
l -i "eth0":指定監聽網卡。
l -d:背景執行。
l -L:輸出日志寫入系統日志(/var/log/messages)。
l -u ntop:指定使用Ntop身份執行。
l -P /var/ntop:指定Ntop資料庫的檔案位置。
l -use-syslog=daemon:使用系統日志程序。
l -w:使用其他端口,指定ntop使用其他端口,例如執行ntop –w 1900以後,便可以使用 http://ip:1900 來連接配接ntop
2.利用Web浏覽器檢視Ntop狀況
Ntop的通訊端口為3000,是以在浏覽器使用IP:3000進入ntop便可看到ntop歡迎界面
,如圖2所示。
圖2 檢視Ntop狀況
3.檢視整體流量
____ 對于網絡整體流量的統計,分别是Protocol Traffic Counters、IP Traffic Counters、 TCP/UDP Connections Stats、Active TCP Connections List、Peers List。按照不同的 Packet,将流量資料存放到不同的Counter中。對網絡整體流量進行分類統計,包括下列情形。
流量分布情形:區分為本網絡主機之間、本網絡與外部網絡之間、外部網絡與本網絡之間的網絡流量統計。
資料包分布情形:依據資料包大小、廣播形态及IP與非IP等加以分類及統計。
協定使用及分布情形:本網絡各主機傳送與接收資料所使用的通信協定種類與資料傳輸量。
通過Summary→Traffic檢視整體流量(如圖3所示),網絡流量會以清晰的表格形式顯示,如圖3所示。
圖3 檢視整體流量
____ 在圖3中,Summary内容為目前玩過的整體概況,包括流量,主機網絡負載等。All Protocols選項可以檢視各主機占用的帶寬和各時段使用的 流量明細。IP顯示網絡主機的流量狀況和排名;Utils可以顯示ntop記錄的網絡狀況、流量統計并可以将資料存儲為txt,xml等格 式;Plugins包含了ntop所支援的插件類型;Admin選項可以對ntop進行配置,例如我們可以配置Pcap Log的路徑,這對于解決 Ntop資料占用磁盤空間問題很有幫助,預設路徑為/usr/local/ntop/var/ntop目錄下。另外為了節約磁盤空間可以降低 Max Hashes和Max Sessions的值。此外還可以進行ntop重新開機停止等操作。另外,如果ntop啟動失敗,你可以到/var/log /messages中尋找錯誤日志。如果你需要設定開機自動啟動還可以到/etc/rc.d/rc.local檔案最後加入啟動ntop的指令。如果你想 修改ntop外觀可以編輯ntop的HTML文檔、或CSS式樣檔案,這些内容在/usr/share/ntop/html目錄下。
圖4 以表格形式顯示網絡流量
4.檢視通信資料包(協定)比例
____ 資料包對于網絡管理的網絡安全而言具有至關重要的意義,如防火牆的作用就是檢測網絡中的資料包,判斷其是否違反了預先設定的規則,如果違反就加以阻止。 Linux網絡中最常見的資料包是TCP和UDP。如果想了解一個計算機傳輸了哪些資料,可以輕按兩下計算機名稱即可分析出使用者各種網絡傳輸的協定類型和占用 帶寬的比例,如圖5所示。
圖5檢視協定類型和占用比例
5.與Google Map整合:Ntop中标注IP所在國家的位置
____ 選取Summary→Hosts World Map Ntop指令,與Google Earth(谷歌地球)進行技術整合,能将收集到的資訊實時地在谷 歌地球上顯示出來。首先要有Gmail賬号,然後到http://code.google.com/apis/maps/signup.html上申請 Google Maps API的密鑰,成功後如圖6所示。
圖6注冊使用Google Maps API
____ 接下來複制密鑰,選擇Admin→Configure→Preferences,這時會提示輸入使用者名、密碼,如圖7所示。
圖7 定位到Admin→Configure→Preferences
____ 在如圖8所示的界面中找到 google_maps.key 選項,并把密鑰填寫進去。注意,調整參數需要輸入使用者和密碼,如果忘記了Ntop密碼,可以通過root輸入“/usr/sbin/ntop –A”來修改使用者admin的密碼。
圖8 填寫密鑰
儲存退出後,在Chrome 浏覽器中再次選擇Hosts World Map,配置完成。
注意:由于Google Maps的限制,不能跟蹤所有IP位址。如果在設定時出現“ Please enable make sure that the ntop html/ directory is properly installed ”提示錯誤,多半是權限問題,可采用以下方法解決:
#chown -R ntop:ntop /var/lib/ntop/
#chown -R ntop:ntop /usr/share/ntop/
# ln -s /usr/share/ntop/html /var/lib/ntop/
# /etc/init.d/ntop restart
6.資料轉儲功能
____ Ntop還支援把流量轉儲成其他格式(如文本檔案、Perl、PHP、Python),以便其他外部程式可以對資料進行深加工。可以選擇Utils→Data Dump指令,如圖9所示。
圖9定位到Utils→Data Dump
如我們選擇報告主機類型,格式為PHP。則轉儲資料如下:
'1.1.1.12' => array(
'hostResolvedName' => '1.1.1.12',
'pktSent' => 12628,
'pktRcvd' => 32668,
'ipv4BytesSent' => 1818480,
'ipv4BytesRcvd' => 30936426,
'bytesMulticastSent' => 0,
'pktMulticastSent' => 0,
'bytesMulticastRcvd' => 0,
'pktMulticastRcvd' => 0,
'bytesSent' => 1818480,
'bytesRcvd' => 30936426,
'ipv6BytesSent' => 0,
'ipv6BytesRcvd' => 0,
'tcpBytesSent' => 1813788,
'tcpBytesRcvd' => 30936426,
'udpBytesSent' => 4692,
'udpBytesRcvd' => 0,
'icmpSent' => 0,
'icmpRcvd' => 0,
),
7.檢視網絡流量圖(Local Network Traffic Map)
____ 首先,在Admin→Configure→Preference中,配置dot.path的參數為 /usr/bin/dot,然後選擇 IP→Local→Network Traffic Map,就可以看到一張反應各個主機流量流向的拓撲圖,箭頭方向代表資料的流向,滑鼠點選相應的IP 位址就能看到非常詳細的IP統計資訊。圖10是Ntop根據網絡流量情況自動生成的拓撲圖。
圖10Ntop檢測資料流向圖
8.檢視主機流量
____ 管理人員在檢視了網絡整體流量資訊後,還希望能深入分析網絡中的主機流量情況,進而進行流量限制等方面的管理工作,可以選擇IP→Summary→Traffic,如圖11所示。
圖11 檢視主機流量
檢視傳輸層的會話,能明顯看出接收和發送了多少資料包,如圖12所示。
圖12 檢視傳輸層的會話
9.啟用插件,Ntop還提供了5個插件,如圖13所示。
圖13 Ntop提供的插件
(1)ICMPWatch:用于端口檢測,很多人都已經知道了可以借助“netstat –an”來檢視目前的連接配接與開放的端口,但 netstat并不是萬能的,在遭到OOB攻擊時,不等使用netstat指令,機器就已經當機了。為此,出現了一種特殊的小工具——端口監聽程式。端口 監聽并不是一項複雜的技術,但卻能解決一些局部問題。
____ 圖中的圖示
表示這是一台Linux主機,圖示
表示是Windows主機,
表示郵件伺服器,
表示是Web伺服器。當我們需要檢視所有伺服器發送流量的大小排序的,隻要單擊Byte下方的Sent即可,若單擊Host下方的某一台主機,還能詳細顯 示目前主機的IP、主機名、MAC、每小時發送/接收資料包的大小、協定分布類型統計等資訊,如圖14所示,非常詳細。
圖14
(2)NetFlow:近年來,很多服務提供商一直使用NetFlow。因為NetFlow在大型廣域網環境裡具有伸縮能力,可以幫助支援對等點 上的最佳傳輸流,同時可以用來建立在單項服務基礎之上的基礎設施最優化評估,解決服務和安全問題方面所表現出來的價值,為服務計費提供基礎。 NetFlow是一種資料交換方式,其工作原理是:NetFlow利用标準的交換模式處理資料流的第一個IP包資料,生成NetFlow 緩存,随後同樣 的資料基于緩存資訊在同一個資料流中進行傳輸,不再比對相關的通路控制等政策,NetFlow緩存同時包含了随後資料流的統計資訊。
____ 下面我們分兩步走,首先在路由器上配置一個NetFlow轉發流量,然後在Ntop上增加一個NetFlow接收流量。啟用NetFlow,定位到 Plugins→NetFlow→Activate,然後添加裝置,在NetFlow Device Configuration中選擇 Add NetFlow Device選項,如圖15所示,設定端口可以自己定義,隻要不與現有的沖突就可以,接口位址填寫打算監控的網段位址。
圖15NetFlow的配置
圖 16 網絡接口選擇
____ 接着,我們需要在路由器上做設定,NetFlow早期都是在路由器上實作的,但是現在一些高端的交換機支援NetFlow,比如Cisco6500系列。
首先需要全局配置,啟用NetFlow:
ip flow-export version 5
ip flow-sampling-mode packet-interval 100
在需要監控的Interface,啟用NetFlow:
Interface FastEthernet 9/0/1
ip address 192.168.150.20 255.255.255.0
ip route-cache flow sampled
show ip cache fow //檢視NetFlow統計資訊
show ip flow export //檢視NetFlow輸出資訊
____ 不是所有的NetFlow源裝置都支援基于Interface的NetFlow,比如Cisco4500就不支援。也就是說它不能在某個 Interface配置打開NetFlow,要麼所有端口啟用,要麼都不啟用,重要的是無法區分不同Interface上的流量情況,隻能看到整個裝置所 有的流量情況。
在實踐中配置NetFlow需要注意以下兩點:
(1)根據NetFlow流的單向性,部署NetFlow時應根據網絡拓撲盡量在邊界的兩個端裝置上配置協定。
(2)對于Catalyst 6000三層交換裝置,通過Supervisor Engine 1和MultilayerSwitch Feature Card CMSFC支援多層交換(MLS)來實作快速交換。
____ 然後,是Ntop的設定環節,這很重要,各個參數不能設定錯誤。首先是NetFlow的裝置名稱,可以随便填寫一個。接下來是使用的端口,這裡一定要填寫 路由器上NetFlow的應用端口,例如3217。同時還要針對NetFlow監控的位址網段做設定,例如筆者的是 192.168.150.0/255.255.255.0。如圖10.24所示,每項參數修改設定完畢後直接單擊右邊的按鈕生效,完成後定位到菜單中的 Admin→switch NIC指令,找到我們添加的這個NetFlow裝置點Switch Nic按鈕讓其生效,生效後我們就可以友善檢視流量了,如 圖17所示。
圖17 檢視流量
(3)rrdPlugin:用于生成流量圖。RRD可以簡單的說是MRTG的更新版,它比MRTG更靈活,更适合用Shell、Perl等程式來調用,生成所要的圖檔。
(4)sFlow:sFlow(RFC 3176)是基于标準的最新網絡導出協定,能夠解決目前網絡管理人員面臨的很多問題。sFlow已經成為 一項線速運作的“永遠線上”技術,可以将sFlow技術嵌入到網絡路由器和交換機ASIC晶片中。與使用鏡像端口、探針和旁路監測技術的傳統網絡監視解決 方案相比,sFlow能夠明顯地降低實施費用,同時可以使面向每一個端口的全企業網絡監視解決方案成為可能。與資料包采樣技術(如RMON)不 同,sFlow是一種導出格式,它增加了關于被監視資料包的更多資訊,并使用嵌入到網絡裝置中的sFlow代理轉發被采樣資料包,是以在功能和性能上都超 越了目前使用的RMON、RMON II和NetFlow技術。sFlow技術的獨特之處在于它能夠在整個網絡中,以連續實時的方式監視每一個端口,但不 需要鏡像監視端口,對整個網絡性能的影響也非常小。
(5)手機插件:這個功能很有意思,我們可以用智能手機,随時随地監控我們的網絡,如圖18所示。
圖18 手機插件
插件使用高清示範 : http://www.tudou.com/programs/view/Jvq8HOBDOuI/
Ntop在病毒清除方面的應用
____ 某客戶感染病毒案例:某天上班時間,網絡性能突然下降,導緻不少使用者無法上網傳輸檔案。首先懷疑是裝置故障,後來又查找了線路是否有問題,但都能ping 通進而一一排除,随後在Ntop檢測的“IP協定”菜單中發現網絡負荷維持在95%以上。在“Network Traffic:Data Sent”圖表 中顯示區域網路中一台機器發送大量的資料包,這台機器的IP位址和MAC也能找到。基本能斷定這台機器中了病毒在發送大量的UDP包,進而造成了廣播風暴, 導緻網絡性能急速下降,如圖19所示,是Ntop捕捉到的随機發送的位址清單。找到故障節點後,随後根據MAC-IP-牆點的對應,及時将這台機器隔離出 網絡進行殺毒處理。
圖19 病毒随機發送資料包清單