网络流量监控

命令:

sar -n DEV 1 1

安装:

sudo yum install sysstat -y

说明:

命令后面1 2 意思是:每一秒钟取1次值,取2次。

DEV显示网络接口信息

另外,-n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL ,其代表的含义如下:

  1. DEV显示网络接口信息。

  2. EDEV显示关于网络错误的统计数据。

  3. NFS统计活动的NFS客户端的信息。

  4. NFSD统计NFS服务器的信息

  5. SOCK显示套接字信息

  6. ALL显示所有5个开关

参数说明:

  1. IFACE:LAN接口

  2. rxpck/s:每秒钟接收的数据包

  3. txpck/s:每秒钟发送的数据包

  4. rxbyt/s:每秒钟接收的字节数

  5. txbyt/s:每秒钟发送的字节数

  6. rxcmp/s:每秒钟接收的压缩数据包

  7. txcmp/s:每秒钟发送的压缩数据包

  8. rxmcst/s:每秒钟接收的多播数据包

  9. rxerr/s:每秒钟接收的坏数据包

  10. txerr/s:每秒钟发送的坏数据包

  11. coll/s:每秒冲突数

  12. rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数

  13. txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数

  14. txcarr/s:发送数据包时,每秒载波错误数

  15. rxfram/s:每秒接收数据包的帧对齐错误数

  16. rxfifo/s:接收的数据包每秒FIFO过速的错误数

  17. txfifo/s:发送的数据包每秒FIFO过速的错误数

实时监控流量脚本

参数为网卡名

#!/bin/bash
 
ethn=$1
 
while true
do
 RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
 TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
 sleep 1
 RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
 TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
 
 clear
 echo -e "\t RX `date +%k:%M:%S` TX"
 
 RX=$((${RX_next}-${RX_pre}))
 TX=$((${TX_next}-${TX_pre}))
 
 if [[ $RX -lt 1024 ]];then
 RX="${RX}B/s"
 elif [[ $RX -gt 1048576 ]];then
 RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
 else
 RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
 fi
 
 if [[ $TX -lt 1024 ]];then
 TX="${TX}B/s"
 elif [[ $TX -gt 1048576 ]];then
 TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
 else
 TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
 fi
 
 echo -e "$ethn \t $RX $TX "
 
done

查看某一天的网卡流量 sar -n DEV -f 文件路径

可以使用-f选项查看某一天的网卡流量历史,后面跟文件路径

查看16号当天的网卡流量

[root@localhost ~]# sar -n DEV -f /var/log/sa/sa16

网卡通信失败信息 sar -n EDEV

[root@localhost ~]# sar -n EDEV
Linux 3.10.0-1062.el7.x86_64 (localhost.localdomain)    2019年12月06日  _x86_64_(1 CPU)

22时10分01秒     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
22时20分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时20分01秒     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时30分01秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时30分01秒     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

IFACE:网卡名称

rxerr/s:每秒钟接收到的损坏的数据包

txerr/s:每秒钟发送的数据包错误数

coll/s:当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有

rxdrop/s:当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目

txdrop/s:当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目

txcarr/s:当发送数据包的时候,每秒钟载波错误发生的次数

rxfram/s:在接收数据包的时候,每秒钟发生的帧对其错误的次数

rxfifo/s:在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数

txfifo/s:在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数

统计socket连接信息 sar -n SOCK

[root@localhost ~]# sar -n SOCK
Linux 3.10.0-1062.el7.x86_64 (localhost.localdomain)    2019年12月06日  _x86_64_(1 CPU)

22时10分01秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
22时20分01秒       567         3         2         0         0         0
22时30分01秒       567         3         2         0         0         0
平均时间:       567         3         2         0         0         0

totsck:当前被使用的socket总数

tcpsck:当前正在被使用的TCP的socket总数

udpsck:当前正在被使用的UDP的socket总数

rawsck:当前正在被使用于RAW的skcket总数

if-frag:当前的IP分片的数目

tcp-tw:TCP套接字中处于TIME-WAIT状态的连接数量

TCP连接的统计 sar -n TCP

[root@localhost ~]# sar -n TCP 1 5
Linux 3.10.0-1062.el7.x86_64 (localhost.localdomain)    2019年12月06日  _x86_64_(1 CPU)

22时41分38秒  active/s passive/s    iseg/s    oseg/s
22时41分39秒      0.00      0.00      1.00      1.00
22时41分40秒      0.00      0.00      1.00      1.00
22时41分41秒      0.00      0.00      1.00      1.00
22时41分42秒      0.00      0.00      1.01      1.01
22时41分43秒      0.00      0.00      0.99      0.99
平均时间:      0.00      0.00      1.00      1.00

active/s:的主动连接

passive/s:新的被动连接

iseg/s:接受的段

oseg/s:输出的段



nethogs

按照进程监控流量

yum -y install nethogs

用法:

nethogs [-V] [-h] [-b] [-d seconds] [-v mode] [-c count] [-t] [-p] [-s] [device [device [device ...]]]

  -V : 打印版本。
  -h : 打印此帮助。
  -b : bughunt模式 - 暗示tracemode。
  -d : 延迟更新刷新率(以秒为单位)。 默认值为1。
  -v : 视图模式(0 = KB / s,1 =总KB,2 =总B,3 =总MB)。 默认值为0。
  -c : 更新次数。 默认为0(无限制)。
  -t : tracemode.
  -p : 煽动混乱模式(不推荐)。
  -s : 按发送列排序输出。
  -a : 监控所有设备,甚至环回/停止。
  device : 要监控的设备。 默认是所有接口启动和运行,不包括环回
当nethogs运行时,按:

  q:退出
  s:按SENT流量排序
  r:按RECEIVE流量排序
  m:在总(KB,B,MB)和KB / s模式之间切换

sudo nethogs eth0


网络流量监控
https://www.hechunyu.com/archives/1698116661709
作者
chunyu
发布于
2019年06月04日
许可协议