转:linux 下三款监控网卡流量的软件iptraf iftop nload

下一步准备做运维项目监测系统的操作系统监测
其中对外服务涉及到网络流量的监测
自己写程序有点麻烦,于是网上找了这篇文章
只是没想好怎么整合到系统中

原文地址:

http://zhumeng8337797.blog.163.com/blog/static/10076891420091123104326703/

==========================================================================

 

Linux下监控网卡流量的软件iftop
官网上说使用iftop需要libpcaplibcurses这两个包。
用命令查找了一下
# rpm -qa | grep libpcap
libpcap-0.9.4-8.1
只找到了这个,缺少libpcap-devel-0.9.4就继续安装了。
出错了:configure: error: can't find pcap.h You're not going to get very far without libpcap.
我用的是Redhat EL5.3系统,从安装盘里找了libpcaprpm包,安装后再编译,安装成功。
# rpm -ivh libpcap-devel-0.9.4-14.el5.i386.rpm
Libcurses这个包没装过,因为安装时也没出错,所以暂时就没装!
安装iftop
# tar zxvf iftop-0.17.tar.gz
# cd iftop-0.17
# ./configure --prefix=/usr/local/iftop && make && make install
# /usr/local/iftop/sbin/iftop      //监测eth0网卡流量
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的<= =>这两个左右箭头,表示的是流量的方向,2行显示时,进和出的流量是分开计算的,一行显示时是加在一起计算的;单独显示进或出时就是单独的进或出的流量。
右侧的三列数值
第一列是:在此次刷新之前2s10s40s的平均流量(按B设置秒数);
第二列是:在此次刷新之前10钟的总流量的一半;
第三列是:在此次刷新之前40钟的总流量的1/5;
中间的列表,默认没有排序情况下,把10秒平均通信量大的排在前面。
界面最下面的三行显示的分别是发送、接收、总计的流量,右侧值分别是总流量(过滤后的,没过滤就是全部的)、在此次刷新之前40秒内的峰值流量、最近2秒的平均传输速率、最近10秒的平均传输速率、最近40秒的平均传输速率。
常用的参数:
# /usr/local/iftop/sbin/iftop help//查看帮助命令
-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
-hdisplay this message)没明白啥意思呢。。。hehe
-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b使流量图形条默认就显示;
-f这个暂时还不太会用,过滤计算包用的;
-P使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
-c指定具体的设定文件,暂时没用过;
iftop画面后的一些操作命令(注意大小写)
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可以向上或向下滚动屏幕显示的连接记录;
123可以根据右侧显示的三列流量数据进行排序;
<根据左边的本机名或IP排序;
>根据远端目标主机的主机名或IP排序;
o切换是否固定只显示当前的连接;
f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
q退出监控。
OK,就写到这吧暂时~~~呵呵,写得不好,欢迎高手们一起研究一下哈~~~嘿嘿~~~

本文出自 “高兴F” 博客,请务必保留此出处http://gaoxingf.blog.51cto.com/612518/188966

 

一.添加yum源方便安装bmon
# rpm -Uhv http://apt.sw.be/redhat/el5/en/x ... 1.el5.rf.x86_64.rpm
# yum install bmon

- bandwidth monitor
可以在 shell 下监控网络流量的状况( 具有动态效果 )

  • RX: 流进
  • TX: 流出


安装成功后输入bmon命令后,选择eth0按g,按d。查看效果如如下:
#bmon
bmon.jpg




以基本的方式查看:
#bmon -o ascii -p eth0

很好很强大!支持下!
linuxtone补充:
再介绍两个查看网络状况的软件:
# yum install nload
nload.png


nload默认分为上下两块:
上半部分是:Incoming也就是进入网卡的流量
下半部分是:Outgoing,也就是从这块网卡出去的流量,

每部分都有当前流量(Curr),平均流量(Avg),最小流量(Min),最大流量(Max),总和流量(Ttl)这几个部分,
看起来还是蛮直观的。
#nload --help 查看具体用法

2.iftop
# yum install iftop
# iftop -i eth0
iftop.png



TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

#iftop -i eth0 -n       就可以看到eth0网卡的流量状况:

iftop 相关命令 :
监控eth1的网卡的流量
# iftop -i eth1
以位元组(bytes)为单位显示流量(预设是位元bits):
$ iftop -B
直接显示IP, 不进行DNS反解:
$ iftop -n
直接显示连接埠编号, 不显示服务名称:
$ iftop -N
显示某个网段进出封包流量
$ iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0
其他参数可下 iftop -h 看说明.
进入iftop画面时, 可按 p 切换是否显示连接埠, n 切换显示IP或主机的domain name, N切换显
示连接埠代号或名称, p暂停显示, b切换是否显示长条, B切换计算几秒内的平均流量, 其他按键
可以按h观看说明.

很 久以前在sbilly的blog看到他介绍nload这个东西,后来忘记名字了,到是记下了ifstat这个看流量的东西,今天看了下nload,很强 大,还有很多选项以前没设置过的。nload eth0 -m,可以不显示那个柱图,只显示数据。man nload还有其他的参数。上图。

 

nload

nload2

或者直接设置下.nload文件也可以

[root@F4 ~]# cat .nload
Version=”1″
AverageWindow=”300″
BarMaxIn=”51200″
BarMaxOut=”51200″
DataFormat=”MBit”
Devices=”eth0″
MultipleDevices=”[ ]”
RefreshInterval=”500″
TrafficFormat=”MBit”
Version=”1″

ifstat的输出也不赖

[root@F4 ~]# ifstat -b
       eth0      
 Kbps in  Kbps out
 4991.09   4938.29
 5461.71   5207.63
 4663.97   5433.32
 5862.77   4878.62
 6852.58   6936.53
 6016.11   6218.63
 7211.42   6264.69
 4986.47   4965.24
 4883.85   4828.53
 5653.91   4948.54
 6339.58   6968.81

 

vnStat是一个Linux下的网络流量监控软件,它记录指定网卡每日的传输流量日志.
它并非基于网络包的过滤,而是分析文件系统- /proc, 所以vnStat无需root的权限就可使用

    在Ubuntu下安装很方便(已经集成到源里,安装需要使用root用户进行):

    apt-get install vnstat

    vnstat -u -i eth0
    (eth0为你的网卡名称)

    大约等待3-5分钟左右,就可以使用vnstat 命令查询流量状况了
   
    -------
    在Ubuntu下卸载:

    dpkg --purge vnstat


    使用也非常简单:

$ vnstat
Database updated: Mon Mar 5 09:15:00 2007

        inet (eth0)

           received:      1,002,061 MB (24.6%)
        transmitted:      3,068,177 MB (75.4%)
              total:      4,070,238 MB

                        rx     |     tx     |  total
        -----------------------+------------+-----------
        yesterday       335 MB |   6,881 MB |   7,216 MB
            today     1,493 MB |   9,808 MB |  11,301 MB
        -----------------------+------------+-----------
        estimated     1,610 MB |  10,579 MB |  12,189 MB


还可以按每周,每日,每小时统计
下面是按小时统计的图示:
$ vnstat -h
eth0                                                                     15:45
  ^                       r                                                     
  |                       rt                                                   
  |                       rt                                                   
  |                       rt    r                                               
  |                       rt    r                                               
  |                       rt    r                             r  r              
  |                       rt r  r  r  r     r  r  r  r  r  r  r  r  rt         
  |      t           t    rt r  r  r  r  r  r  r  r  r  r  r  r  rt rt         
  |     rt       rt rt    rt r  r  r  r  r  r  r  r  r  r  r  r  rt rt rt      
  |  rt rt rt rt rt rt rt rt rt rt rt r  r  r  r  r  r  r  r  rt rt rt rt rt   
-+--------------------------------------------------------------------------->
  |  16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15   
                                                                                
h   rx (kB)    tx (kB)      h   rx (kB)    tx (kB)      h   rx (kB)    tx (kB)
16      2,684      3,135    00      8,960      3,033    08      8,071      1,074
17      4,401      5,433    01     12,740      1,981    09      8,395      1,354
18      2,443      3,056    02      8,955      2,658    10      8,702      1,671
19      2,059      2,563    03      7,748      1,440    11      9,211      3,463
20      3,920      5,227    04      6,386      1,615    12      9,530      5,985
21      3,884      5,491    05      8,187      1,055    13      7,633      8,276
22      2,139      2,289    06      8,100      1,130    14      3,771      4,914
23     18,036     17,629    07      8,101      1,111    15      2,657      2,998

------------------------
   如果是FreeBSD下安装稍微多几个步骤,首先要下载vnStat :
   http://humdi.net/vnstat/

   使用命令解压缩:
   #tar -xzvf vnstat-1.4_bsd.tar.gz
   #cd vnstat
   #make
   #make install
   #vnstat -u -i eth0
   然后稍等3-5分钟,就可以运行vnStat查看流量了
   (如果安装遇到问题,请查看INSTALL文档)

posted @ 2012-11-14 14:15  4admin2root  阅读(1514)  评论(0)    收藏  举报