天天看點

Linux運維之網絡運維

iftop    ntopng    iperf

一、先來看看iftop

iftop是一個免費的網卡實時流量監控工具,類似于linux下的top指令,iftop可以監控指定網卡的實時流量、端口連接配接資訊,反向解析ip,還可以精确的顯示本機網絡流量情況及網絡内各主機與本機互相通信的流量狀況。

iftop的安裝

iftop官網:http://www.ex-parrot.com/pdw/iftop/

有源碼編譯安裝和rpm包安裝,兩種方法都很簡單。如果用源碼編譯安裝,下載下傳下來直接./configure 就可以了,rpm包安裝則更簡單就不用說了。

iftop 使用參數:

-i 指定需要監測的網卡

-n 将輸出的主機資訊都通過ip顯示,不進行dns反向解析

-b 将輸出以byte為機關顯示網卡流量,預設是bit

-p 以混雜模式運作iftop,此時iftop可以用作網絡嗅探器

-n 隻顯示連接配接端口号,不顯示端口對應的服務名稱

-p 顯示主機以及端口資訊

-f 顯示特定網段的網卡進出流量

-m 設定iftop輸出界面中最上面的流量刻度最大值,流量刻度分5個大段顯示

Linux運維之網絡運維

在最下面三行,tx表示發送資料,rx表示接收資料,total表示發送和接收的全部流量。其中,cumm表示從運作iftop到目前的發送、接收和總資料流量。peak表示發送、接收以及總的流量峰值;rates表示過去2s、10s、40s内的平均流量值。

二、網絡管理系統ntopng

安裝ntopng

下載下傳位址:http://www.nmon.net/centos/

這裡有提供rpm格式的安裝包,直接使用yum安裝即可。

yum install pfring n2disk nprobe ntopng ntopng-data nbox -y

建立配置檔案

# vim /etc/ntopng/ntopng.conf

-g=/var/tmp/ntopng.gid

--local-networks "192.168.31.0/24"

--interface eth0

--user nobody

--http-port 3000

相關參數含義如下:

-g 指定存儲ntopng程序号的檔案路徑

--local-network 指定要監控的本地子網段

--interface eth0 指定要監聽eth0網卡上的流量

--user指定運作ntopng服務所使用的帳戶

--http-port指定ntopng的web服務端口号,預設端口為3000.

啟動ntopng服務之前需要啟動redis服務,因為ntopng服務依賴redis服務的鍵值存儲。

service redis start

service ntopng start

ntopng 常用參數:

-d 将ntopng程序放到背景執行,預設ntop在前台運作。

-u 指定啟動ntopng執行的使用者,預設是nobody使用者。

-i  指定ntopng監聽的網卡裝置,指定多塊網卡時,用逗号隔開。

-m 如果通過-i 參數指定了多塊網卡,那麼輸出的網卡流量資訊預設是合并的,如果要将多塊網卡資訊分開統計,就需要添加此參數。

-l 将ntopng的輸出資訊寫入系統日志檔案中,對應于centos,就是/var/log/message檔案

-w 設定ntopng的web界面使用的端口,預設是3000

-r 設定ntopng的web界面自動重新整理頻率,預設是每3s重新整理一次。

服務啟動起來以後,就可以通過web界面通路了。

預設帳号密碼:admin

Linux運維之網絡運維
Linux運維之網絡運維

三、網絡性能評估工具iperf

iperf是一個基于tcp/ip和udp/ip的網絡性能測試工具,它可以用來測量網絡帶寬和網絡品質,還可以提供網絡延遲抖動、資料包丢失率、最大傳輸單元等統計資訊。網絡管理者可以根據這些資訊了解并判斷網絡性能問題,進而定位網絡瓶頸。

iperf的主要功能:

tcp方面

測試網絡帶寬

支援多線程,在用戶端與伺服器支援多重連接配接

報告mss/mtu值的大小

支援tcp視窗值自定義并可通過套接字緩沖

udp方面

可以設定指定帶寬的udp資料流

可以測試網絡抖動值、丢包數

支援多點傳播測試

支援多線程,在用戶端與伺服器端支援多重連接配接

iperf 官網:http://iperf.fr

安裝iperf

tar zxvf  iperf-2.0.5-source.tar.gz

cd iperf-2.0.5

./configure --prefix /usr/local/iperf

make && make install

cp /usr/local/iperf/bin/iperf  /usr/bin/

iperf參數說明:

服務端專用選項

-s 将iperf以伺服器模式啟動,例如:iperf –s  iperf預設啟動的監聽端口為5201,可以通過“-p”選項修改預設監聽端口

-d 将iperf作為背景守護程序運作,例如:iperf –s –d 

用戶端專用選項

-c 将iperf以用戶端模式啟動

-u 指定使用udp協定

-b [k|m|g] 指定udp模式使用的帶寬,機關bits/sec。此選項與-u 選項相關。 預設1 mbits/sec

-t 指定傳輸資料包的總時間。 iperf将在指定的時間内,重複發送指定長度資料包。 預設10s

-n [k|m|g] 指定傳輸資料包的位元組數

-l 指定讀寫緩沖區的長度,tcp方式預設大小為8kb,udp方式預設大小為1470b

-p 指定用戶端與伺服器端之間使用的線程數,預設是1個線程。需要用戶端與伺服器端同時使用此參數

-r 切換資料發送、接收模式

-w 指定套接字緩沖區大小

-b 用來綁定一個主機位址或接口,這個參數僅用于具有多個網絡接口的主機。

-m 設定tcp最大資訊段的值

-n 設定tcp無延時

用戶端與伺服器端公用選項

-f [k|m|g|k|m|g] 指定帶寬輸出機關

-p 指定伺服器端使用的端口或用戶端所連接配接的端口

-i 指定每次報告之間的時間間隔,機關為秒。 預設值為1.

-f 指定檔案作為資料流進行帶寬測試

實戰演練:

要使用ifperf,首先啟動一個伺服器端。

./bin/iperf -d -s

然後來到用戶端這邊測試

# iperf -c 192.168.31.253

------------------------------------------------------------

client connecting to 192.168.31.253, tcp port 5001

tcp window size: 19.3 kbyte (default)

[  3] local 192.168.31.254 port 49057 connected with 192.168.31.253 port 5001

[ id] interval       transfer     bandwidth

[  3]  0.0-10.0 sec  1.41 gbytes  1.21 gbits/sec

指定發送資料的大小,指定輸出的機關,指定線程數。

# iperf -c 192.168.31.253 -n 2000000000 -f m -p 2

-----------------------------------------------------------

tcp window size: 0.02 mbyte (default)

[  4] local 192.168.31.254 port 49058 connected with 192.168.31.253 port 5001

[  3] local 192.168.31.254 port 49059 connected with 192.168.31.253 port 5001

[  3]  0.0-17.5 sec  1907 mbytes   109 mbytes/sec

[  4]  0.0-23.5 sec  1907 mbytes  81.3 mbytes/sec

[sum]  0.0-23.5 sec  3815 mbytes   163 mbytes/sec

測試udp丢包和延遲

iperf -c 192.168.31.253 -u -b 50m -f m -i 2

筆者安裝的iperf是2.0版本的,建議大家按照3.0版本。 學習總結完成!

本文出自 “突破舒适區” 部落格,請務必保留此出處http://tchuairen.blog.51cto.com/3848118/1576573

繼續閱讀