bmon-Linux中的实时带宽监视器

bmon - Real Time Bandwidth Monitor in Linux

我们已经知道带宽,因为我们都处在智能手机领域,并且使用3G和4G以及基于光纤的Internet进行家庭使用。 我们不知道它消失了(我的意思是带宽使用/利用率)以及任何泄漏。

带宽泄漏将导致通过网络运行应用程序的响应变慢。 因此,请仔细监视带宽尖峰,以避免不必要的泄漏。 bmon代表带宽监视工具,用于监视和调试与网络相关的问题。 它捕获实时带宽使用情况,并支持用于不同体系结构的各种输入方法。

它具有各种输出方法,例如HTML输出,ASCII输出,图形,交互式curses用户界面和用于脚本编写的可编程文本输出。

bmon显示系统上所有网络接口上的流量使用情况。

在Linux中安装bmon

大多数发行版(Debian,Ubuntu,Mint,Fedora,suse,openSUSE,Arch Linux,Manjaro,Mageia等)都具有bmon软件包,因此,我们可以从发行版官方存储库中轻松安装它。

对于基于Debian的系统,请使用apt-get或apt软件包管理器来安装bmon。

1
$ sudo apt install bmon

对于Fedora系统,请使用dnf软件包管理器安装bmon。

1
$ sudo dnf install bmon

对于openSUSE系统,请使用zypper软件包管理器安装bmon。

1
$ sudo zypper in bmon

对于基于Arch Linux的系统,请使用pacman软件包管理器安装bmon。

1
$ pacman -S bmon

对于CentOS系统,没有用于bmon的官方软件包,因此我们需要手动安装。 请按照以下步骤在CentOS6 / RHEL6上安装bmon。

1
2
3
4
5
6
7
$ git clone https://github.com/tgraf/bmon.git && cd bmon
$ sudo yum install make libconfuse-devel libnl3-devel libnl-route3-devel ncurses-devel
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ bmon

请遵循不提供官方软件包的CentOS 7和其他发行版的源安装方法。

安装libconfuse

1
2
3
4
5
$ wget https://github.com/martinh/libconfuse/releases/download/v2.8/confuse-2.8.zip
$ unzip confuse-2.8.zip && cd confuse-2.8
$ sudo PATH=/usr/local/opt/gettext/bin:$PATH ./configure
$ make
$ sudo make install

安装bmon

1
2
3
4
5
6
$ git clone https://github.com/tgraf/bmon.git && cd bmon
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ bmon

监控实时带宽使用情况

在成功使用以上命令安装bmon之后。 只需在终端上触发以下命令即可监视带宽使用情况。

1
# bmon

 width=

默认情况下,bmon仅显示界面信息,如果要加载图形,请按gid获取详细信息。 这些小部件是标准小部件,无法重新排列。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 lo                                                                                                                                    bmon 3.9
Interfaces                     │ RX bps       pps     %│ TX bps       pps     %
 >lo                           │   1.44KiB     24      │   1.44KiB     24
    qdisc none (noqueue)       │      0         0      │      0         0
  enp0s3                       │    156B        2      │    152B        1
    qdisc none (pfifo_fast)    │      0         0      │    148B        1
───────────────────────────────┴───────────────────────┴────────────────────────────────────────────────────────────────────────────────────────
     KiB                      (RX Bytes/second)                              KiB                      (TX Bytes/second)
    6.09 .........................|..................................       6.09 .........................|..................................
    5.08 .........................||.................................       5.08 .........................||.................................
    4.06 ..................|......||....................|............       4.06 ..................|......||....................|............
    3.05 .....|.|..........|......||....................||.|....|....       3.05 .....|.|..........|......||....................||.|....|....
    2.03 |.|..|.|..|......||......||....................||.|....|....       2.03 |.|..|.|..|......||......||....................||.|....|....
    1.02 |||::||||:|::::||||:|::::|||::|::::|::::|::::||||:|::|:|:::|       1.02 |||::||||:|::::||||:|::::|||::|::::|::::|::::||||:|::|:|:::|
         1   5   10   15   20   25   30   35   40   45   50   55   60            1   5   10   15   20   25   30   35   40   45   50   55   60















───────────────────────────────────────┬───────────────────────────────────────┬────────────────────────────────────────────────────────────────
                      RX          TX   │                      RX          TX   │                      RX          TX
 Bytes             15.51MiB    15.51MiB│ Packets          258.25K     258.25K  │ Abort Error           -           0  
 Carrier Error         -           0   │ Collisions            -           0   │ Compressed            0           0  
 CRC Error             0           -   │ Dropped               0           0   │ Errors                0           0  
 FIFO Error            0           0   │ Frame Error           0           -   │ Heartbeat Erro        -           0  
 ICMPv6                0           0   │ ICMPv6 Checksu        0           -   │ ICMPv6 Errors         0           0  
 Ip6 Address Er        0           -   │ Ip6 Broadcast         0           0   │ Ip6 Broadcast         0           0  
 Ip6 CE Packets        0           -   │ Ip6 Checksum E        0           -   │ Ip6 Delivers     124.83K          -  
 Ip6 ECT(0) Pac        8           -   │ Ip6 ECT(1) Pac        0           -   │ Ip6 Forwarded         -           0  
 Ip6 Header Err        0           -   │ Ip6 Multicast         0           0   │ Ip6 Multicast         0           0  
 Ip6 No Route          0           0   │ Ip6 Non-ECT Pa   124.85K          -   │ Ip6 Reasm/Frag        0           0  
 Ip6 Reasm/Frag        0           0   │ Ip6 Reasm/Frag        0           0   │ Ip6 Reassembly        0           -  
 Ip6 Too Big Er        0           -   │ Ip6 Truncated         0           -   │ Ip6 Unknown Pr        0           -  
 Ip6Discards           0           0   │ Ip6Octets          8.34MiB     8.33MiB│ Ip6Pkts          124.86K     124.83K  
 Length Error          0           -   │ Missed Error          0           -   │ Multicast             -           0  
 Over Error            0           -   │ Window Error          -           0   │
───────────────────────────────────────┼───────────────────────────────────────┼────────────────────────────────────────────────────────────────
 MTU                             65536 │ Flags          loopback,up,running,lo │ Operstate                     unknown
 IfIndex                             1 │ Address             00:00:00:00:00:00 │ Broadcast           00:00:00:00:00:00
 Mode                          default │ TXQlen                              1 │ Family                         unspec
 Alias                                 │ Qdisc                         noqueue │
 Fri Jan 27 18:35:43 2017                                                                                                      Press ? for help

Bmon输出分为四个部分。

  • 第一部分:显示可用接口,已接收和已传输字节。

  • 第2部分:使用图形统计数据显示与上述相同的输出。

  • 第3部分:显示有关已接收和已传输字节的详细信息。

  • 第4部分:显示其他信息。

  • 点击?按钮导航到Quick Reference页面,以方便使用bmon。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
                                  ┌───────────────QUICK REFERENCE────────────────┐
                                  │ Navigation                                   │
                                  │   Up, Down      Previous/Next element        │
                                  │   PgUp, PgDown  Scroll up/down entire page   │
                                  │   Left, Right   Previous/Next attribute      │
                                  │   [, ]          Previous/Next group          │
                                  │   ?             Toggle quick reference       │
                                  │   q             Quit bmon                    │
                                  │                                              │
                                  │ Display Settings                             │
                                  │   d             Toggle detailed statistics   │
                                  │   l             Toggle element list          │
                                  │   i             Toggle additional info       │
                                  │                                              │
                                  │ Graph Settings                               │
                                  │   g             Toggle graphical statistics  │
                                  │   H             Start recording history data │
                                  │   TAB           Switch time unit of graph    │
                                  │   <, >          Change number of graphs      │
                      │   r             Reset counter of element     │
                      └──────────────────────────────────────────────┘

    显示特定的界面使用情况

    如果要显示特定的界面活动以进行更好的监视。 添加-p选项,然后添加Interface Name和bmon。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    # bmon -p eth0

     enp0s3                                                                                             bmon 3.9
    Interfaces                     │ RX bps       pps     %│ TX bps       pps     %
     >enp0s3                       │     11B        0      │     11B        0
    ───────────────────────────────┴───────────────────────┴─────────────────────────────────────────────────────
           B                      (RX Bytes/second)
      618.00 ...........|................................................
      515.00 ...........|................................................
      412.00 ...........|................................................
      309.00 ...........|................................................
      206.00 ........|..|................................................
      103.00 .|......|..|................................................
             1   5   10   15   20   25   30   35   40   45   50   55   60
           B                      (TX Bytes/second)
      160.00 ........|...................................................
      133.33 ........|...................................................
      106.67 ........|...................................................
       80.00 ........|...................................................
       53.33 .|......|..|................................................
       26.67 .|......|..|................................................
             1   5   10   15   20   25   30   35   40   45   50   55   60











    ─────────────────────────────────── Press d to enable detailed statistics ───────────────────────────────────
    ───────────────────────────────── Press i to enable additional information ──────────────────────────────────
     Fri Jan 27 18:42:39 2017                                                                   Press ? for help

    设置读取间隔

    默认情况下,bmon每1秒显示一次统计信息。 我们可以通过添加-r选项,然后按

    seconds与bmon。

    1
    # bmon -r 5

    获取ascii输出

    默认情况下,bmon在curses模式下显示统计信息输出。 如果要以ascii模式获得输出,请添加-o选项,然后添加ascii和bmon。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # bmon -o ascii

    Interfaces                               RX bps         pps      %    TX bps         pps      %
      lo                                          0           0                0           0      
       qdisc none (noqueue)                       0           0                0           0      
      enp0s3                                      0           0                0           0      
       qdisc none (pfifo_fast)                    0           0                0           0      
    Interfaces                               RX bps         pps      %    TX bps         pps      %
      lo                                        239B          3              239B          3      
       qdisc none (noqueue)                       0           0                0           0      
      enp0s3                                      0           0                0           0      
       qdisc none (pfifo_fast)                    0           0                0           0      
    Interfaces                               RX bps         pps      %    TX bps         pps      %
      lo                                        419B          6              419B          6      
       qdisc none (noqueue)                       0           0                0           0      
      enp0s3                                     59B          0               59B          0      
       qdisc none (pfifo_fast)                    0           0               53B          0

    进一步了解bmon

    如果您想了解更多适用于bmon的选项,只需导航至手册页。

    1
    2
    3
    4
    <span style="color:#848484">[bmon man page]</span>
    # bmon --help
    or
    # man bmon