iftop带宽监控

iftop是类似于linux系统中实时流量的监控工具。

iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。

一、iftop详解

1.1 安装命令

centos 系统使用如下命令进行安装

yum install -y iftop

1.2 界面说明

                                          12.5Kb                                    25.0Kb                                    37.5Kb                                    50.0Kb                              62.5Kb
==================================================================================================================================================================================================================                                          
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 100.103.0.45                                                                                   0b   9.19Kb  9.19Kb
                                                                                            <=                                                                                                0b    610b    610b
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 47.95.246.187                                                                               3.55Kb  5.88Kb  5.88Kb
                                                                                            <=                                                                                              416b   1.20Kb  1.20Kb
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 100.100.35.30                                                                               5.08Kb  1.02Kb  1.02Kb
                                                                                            <=                                                                                             15.0Kb  3.00Kb  3.00Kb
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 100.100.30.25                                                                               4.80Kb  3.08Kb  3.08Kb
                                                                                            <=                                                                                              184b    110b    110b
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 192.168.21.2                                                                                1.13Kb  1.14Kb  1.14Kb
                                                                                            <=                                                                                             1.38Kb  1.25Kb  1.25Kb
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 100.100.2.138                                                                                572b    586b    586b
                                                                                            <=                                                                                              864b    924b    924b
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 100.100.2.136                                                                                872b    577b    577b
                                                                                            <=                                                                                             1.19Kb   927b    927b
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => ec2-13-48-48-212.eu-north-1.compute.amazonaws.com                                              0b     67b     67b
                                                                                            <=                                                                                                0b     67b     67b
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => 203.107.6.88                                                                                 304b     61b     61b
                                                                                            <=                                                                                              304b     61b     61b
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => ec2-68-79-21-76.cn-northwest-1.compute.amazonaws.com.cn                                        0b     29b     29b
                                                                                            <=                                                                                                0b     37b     37b
iZj6cibuqbd4wx6fqv2k4kZ                                                                     => ec2-68-79-49-70.cn-northwest-1.compute.amazonaws.com.cn                                        0b     29b     29b
                                                                                            <=                                                                                                0b     37b     37b
=================================================================================================================================================================================================================
TX:             cum:   27.0KB   peak:   63.1Kb                                                                                                                                    rates:   16.3Kb  21.6Kb  21.6Kb
RX:                    10.2KB           19.3Kb                                                                                                                                             19.3Kb  8.16Kb  8.16Kb
TOTAL:                 37.2KB           71.3Kb                                                                                                                                             35.6Kb  29.8Kb  29.8Kb

1、界面头部:

  • 流量刻度尺,对应下边每行的白色横条。

2、界面中部:

  • 左边为服务器;中间为外网IP,左箭头流入,右箭头流出;右边为2s 10s 40s 的流量情况。

3、界面下部:

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

1.3 命令参数

  • -i 设定监测的网卡,如:# iftop -i eth1
  • -B 以bytes为单位显示流量(默认是bits),如:# iftop -B
  • -n 使host信息默认直接都显示IP,如:# iftop -n
  • -N 使端口信息默认直接都显示端口号,如: # iftop -N
  • -F 显示特定网段的进出流量,如# iftop -F 192.168.1.0/24或# iftop -F 192.168.1.0/255.255.255.0
  • -h (display thismessage),帮助,显示参数信息;
  • -p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
  • -b 使流量图形条默认就显示;
  • -f 这个暂时还不太会用,过滤计算包用的;
  • -P 使host信息及端口信息默认就都显示;
  • -t 使用不带ncurse的文本界面
  • -L 显示条数;
  • -s 在数秒后打印一个文本输出,然后退出;
  • -m 设置界面最上边的刻度的最大值,刻度分五个大段显示,例:上图既是执行该命令# iftop -m 1M

1.4 iftop文本生成说明

部分情况下,我们需要将iftop的情况记录到文本中

iftop -tnPBs 2 ,可生成日志文本分析流量情况

生成后的文本内容

Listening on eth0
   # Host name (port/service if enabled)            last 2s   last 10s   last 40s cumulative
--------------------------------------------------------------------------------------------
   1 172.31.56.175:20871            =>     75.6Mb     75.6Mb     75.6Mb     18.9MB
     100.115.61.9:http                        <=      167Kb      167Kb      167Kb     41.9KB
   2 172.31.56.175:20867            =>     70.5Mb     70.5Mb     70.5Mb     17.6MB
     100.115.61.9:http                        <=      123Kb      123Kb      123Kb     30.8KB
   3 172.31.56.175:38490            =>     38.7Mb     38.7Mb     38.7Mb     9.66MB
     100.115.61.4:http                        <=      233Kb      233Kb      233Kb     58.2KB
--------------------------------------------------------------------------------------------
Total send rate:                                      208Mb      208Mb      208Mb
Total receive rate:                                   595Kb      595Kb      595Kb
Total send and receive rate:                          209Mb      209Mb      209Mb
--------------------------------------------------------------------------------------------
Peak rate (sent/received/total):                      208Mb      595Kb      209Mb
Cumulative (sent/received/total):                    52.0MB      149KB     52.1MB
============================================================================================

文本说明,例如以下:

1 172.31.56.175:20871            =>     75.6Mb     75.6Mb     75.6Mb     18.9MB
  100.115.61.9:http              <=      167Kb      167Kb      167Kb     41.9KB

解释:

172.31.56.175(服务器本身)利用20871端口向100.115.61.9发起http请求,传输速率为:75.6Mb/s(出网)
100.115.61.9向172.31.56.175(服务器本身)返回数据,传输速率为:167Kb/s (入网)

1.5 界面命令

  • 按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退出监控。

二、服务器监控带宽详情

最近使用的阿里云服务器在凌晨时,带宽突然增大至上百M,而阿里云无法说明当时的情况,所以编写以下脚本进行服务器带宽详情监控

2.1 带宽监控脚本

#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin;
export PATH

MB=1
TXpre=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $10}')
sleep 60
TXnext=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $10}')
TXX=$((${TXnext}-${TXpre}))
TX=$(echo $TXX | awk '{print $1/1048576/8 }')

if [ `echo "$TX > $MB" | bc` -eq 1 ];then

iftop -t -P -s 2 > /opt/logs/iftop_log/iftop$(date +%F_%H:%M:%S).log

fi

2.2 定时器任务

*/2 * * * *  /bin/bash  /opt/scripts/network_monitoring.sh   >/dev/null 2>&1

脚本解析

MB=1 
network_now=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $10}')
查看现在的eth0网卡出网带宽(出网总字节数)

/proc/net/dev:网卡发送或接收的数据的总字节数
tr : " "  将:转换为空格

sleep 60
等待60秒

network_next=$(cat /proc/net/dev | grep eth0 | tr : " " | awk '{print $10}')
查看1分钟后的eth0网卡出网带宽(出网总字节数)


network=$((${network_next}-${network_now}))
利用第二次获取的出网总带宽减去第一次的出网总带宽,得到一分钟的网卡出网带宽

network_MB=$(echo $network | awk '{print $/1048576/8 }')
将字节数转换为MB

if [ `echo "$TX > $MB" | bc` -eq 1 ];then
判断一分钟增长的出网带宽是否大于设置的阈值,如果大于,则执行以下命令:

iftop -tnPBs 2 > /opt/logs/iftop_log/iftop$(date +%F_%H:%M:%S).log

-t 使用不带ncurse的交互文本界面
-n 使host信息默认直接显示IP
-P 使host信息及端口信息默认就都显示
-B 以bytes为单位显示流量(默认是bits)
-s 在数秒后打印一个文本输出,然后退出

fi

iftop打印后的内容

   # Host name (port/service if enabled)            last 2s   last 10s   last 40s cumulative
--------------------------------------------------------------------------------------------
   1 172.31.56.175:41936                      =>       699B       699B       699B     1.37KB
     100.100.30.25:http                       <=        23B        23B        23B        46B
   2 172.31.56.175:42117                      =>       284B       284B       284B       568B
     106.38.36.34:rich-cp                     <=       391B       391B       391B       782B
   3 172.31.56.175:25319                      =>       144B       144B       144B       289B
     192.168.21.2:57962                       <=       153B       153B       153B       306B
   4 172.31.56.175:25319                      =>       141B       141B       141B       282B
     192.168.21.2:58122                       <=       148B       148B       148B       297B
   5 172.31.56.175:52052                      =>        37B        37B        37B        74B
     100.100.2.136:domain                     <=        45B        45B        45B        90B
   6 172.31.56.175:34359                      =>        37B        37B        37B        74B
     100.100.2.138:domain                     <=        45B        45B        45B        90B
   7 172.31.56.175:52318                      =>        38B        38B        38B        76B
     100.100.3.3:ntp                          <=        38B        38B        38B        76B
--------------------------------------------------------------------------------------------
Total send rate:                                     1.35KB     1.35KB     1.35KB
Total receive rate:                                    844B       844B       844B
Total send and receive rate:                         2.17KB     2.17KB     2.17KB
--------------------------------------------------------------------------------------------
Peak rate (sent/received/total):                     1.35KB       843B     2.17KB
Cumulative (sent/received/total):                    2.70KB     1.65KB     4.34KB
============================================================================================

注:以上文本内容为 2.7 K

24小时文本大小为:116640 KB = 2 MB

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值