今天看到一流量監控工具,覺得不錯,就在自家服務器上裝了一下,記錄一下,留以後之需;
在類Unix系統中可以使用top查看系統資源、進程、內存占用等信息。查看網絡狀態可以使用netstat、nmap等工具。若要查看實時的網絡流量,監控TCP/IP連接等,則可以使用iftop;iftop是類似於top的實時流量監控工具;可以用來監控網卡的實時流量(可以指定網段)、反向解析IP、顯示端口信息等,詳細的將會在後面的使用參數中說明:
使用iftop -P 定位最大流量端口
iftop界面相關說明
界面上面顯示的是類似刻度尺的刻度范圍,為顯示流量圖形的長條作標尺用的。
中間的<= =>這兩個左右箭頭,表示的是流量的方向。
根據端口定位程序PID
圖中紅框中直接顯示了http服務,當然如果只顯示端口號而且我們也不知道什麼程序時,可以通過下面步驟來確認:
[root@localhost sbin]# lsof -i:45294 或者 netstat -atunp |grep 45294
通過上面代碼可以進一步確定PID
根據進程PID確定進程的名稱
[root@localhost sbin]# cat /proc/PID號/cmdline
然後可以看到具體運行的程序,最後就可以分析為什麼這個程序這麼消耗流量了
安裝前需要已經安裝好基本的編譯所需的環境,比如make、gcc、autoconf等。安裝iftop還需要安裝libpcap和libcurses
安裝所需依賴包(centos)
[root@localhost sbin]# yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
編譯安裝iftop工具
1)下載iftop工具的源碼包;
[root@localhost ~]# wget http://oss.aliyuncs.com/aliyunecs/iftop-0.17.tar.gz
2) 解壓縮下載的iftop文件
[root@localhost ~]# tar zxvf iftop-0.17.tar.gz
3) 進入到解壓的的iftop目錄中
[root@localhost ~]# cd iftop-0.17
4) 配置並制定安裝目錄為/usr/local/iftop目錄下
[root@localhost iftop-0.17]# ./configure –prefix=/usr/local/iftop
5)編譯並安裝
[root@localhost iftop-0.17]# make && make install
安裝完成以後直接使用/usr/local/iftop/sbin/iftop 啟動iftop程序查看流量使用情況,如果想使用iftop的方式直接開啟程序,需要將iftop的程序添加到環境變量中即可
遇到的問題
make: yacc: Command not found
make: *** [grammar.c] Error 127
解決方法:apt-get install byacc / yum install byacc
configure: error: Curses! Foiled again!
(Can't find a curses library supporting mvchgat.)
Consider installing ncurses.
解決方法:apt-get install libncurses5-dev / yum install ncurses-devel
-i設定監測的網卡,如:# iftop -i eth1
-B 以bytes為單位顯示流量(默認是bits),如:# iftop -B
-n使host信息默認直接都顯示IP,如:# iftop -n
-N使端口信息默認直接都顯示端口號,如: # iftop -N
-F顯示特定網段的進出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),幫助,顯示參數信息
-p使用這個參數後,中間的列表顯示的本地主機信息,出現了本機以外的IP信息;
-b使流量圖形條默認就顯示;
-f這個暫時還不太會用,過濾計算包用的;
-P使host信息及端口信息默認就都顯示;
-m設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:# iftop -m 100M
按h切換是否顯示幫助;
按n切換顯示本機的IP或主機名;
按s切換是否顯示本機的host信息;
按d切換是否顯示遠端目標主機的host信息;
按t切換顯示格式為2行/1行/只顯示發送流量/只顯示接收流量;
按N切換顯示端口號或端口服務名稱;
按S切換是否顯示本機的端口信息;
按D切換是否顯示遠端目標主機的端口信息;
按p切換是否顯示端口信息;
按P切換暫停/繼續顯示;
按b切換是否顯示平均流量圖形條;
按B切換計算2秒或10秒或40秒內的平均流量;
按T切換是否顯示每個連接的總流量;
按l打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車後,屏幕就只顯示這個IP相關的流量信息;
按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化;
按j或按k可以向上或向下滾動屏幕顯示的連接記錄;
按1或2或3可以根據右側顯示的三列流量數據進行排序;
按<根據左邊的本機名或IP排序;
按>根據遠端目標主機的主機名或IP排序;
按o切換是否固定只顯示當前的連接;
按f可以編輯過濾代碼,這是翻譯過來的說法,我還沒用過這個!
按!可以使用shell命令,這個沒用過!沒搞明白啥命令在這好用呢!
按q退出監控。
通常定位進程流量的還可以用到iptraf,nethogs等
iptraf可以參考:http://linuxperf.com/?p=11
nethogs可以參考:http://man.linuxde.net/nethogs
bmon工具參考:http://blog.sina.com.cn/s/blog_706476980101gliu.html
http://xxxxxx/Linuxjc/1169935.html TechArticle