实时监控Linux下网络流量信息

1、概述

在《Linux 网卡带宽》此篇博文中,详细讲解了网络带宽概念、如何查看服务器网卡带宽、虚拟机的网卡带宽原理、使用iperf3命令测试服务器之间的真实网络带宽以及判断网络性能瓶颈,在本篇博文中介绍下几种常用的实时监控Linux下网络流量信息的方式。

2、常用的实时监控Linux下网络流量信息方式

2.1 基于Prometheus获取Linux网络流量信息(建议)

大体步骤是在需要监控服务器节点上部署Node_expoter用于采集节点指标数据,然后在Prometheus上配置节点信息,用于实时拉取节点指标数据,最终通过可视化页面展示指标数据(Grafana、Prometheus默认UI界面、自主开发前端页面)。

注意:看指标的时候需要拿"出网卡流量" + "入网卡流量"和节点网卡带宽比较,以上示例图片的节点网卡带宽为1000Mbps,可以看到121.52Mbps (入)+17.31(出) << 1000Mbps,所以节点网络流量并不算很大,没有超过网卡带宽。

2.2 使用nload命令获取Linux网络流量信息

nload用于实时监控linux下网络流量信息,是命令行工具,用来监控网络的吞吐量。它使用两个图表数据来对进出站流量进行可视化。

安装nload:

yum install -y epel-release  #先安装epel软件库
yum install -y nload         #再安装nload

nload命令参数:

-a 全部数据的刷新时间周期,单位是秒,默认是300s
-i 进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s
-m 不显示流量图,只显示统计数据
-o 出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s
-t 显示数据的刷新时间间隔,单位是毫秒,默认500ms
-u 设置右边Curr、Avg、Min、Max的数据单位,默认是h自动变的.注意大小写单位不同!

命令使用:

nload eno3 -m 

获取网卡eno3的网络流量信息,不加具体网卡的话就是获取整个机器上所有网卡的网络流量信息(包括虚拟网卡)。

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

参数详情表:

参数 描述
Curr 当前流量
Avg 平均流量
Min 最小流量
Max 最大流量
Ttl 总和流量

注意:这里的平均流量、最小流量、最大流量是基于执行nload命令期间统计出来的。

总结:使用nload命令工具可以直观的看出流量I/O

2.3 其他获取Linux网络流量信息方式

监控总体带宽使用――nmon、bmon、slurm、bwm-ng、cbm、speedometer和netload
监控总体带宽使用(批量式输出)――vnstat、ifstat、dstat和collectl
每个套接字连接的带宽使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
每个进程的带宽使用――nethogs

各种命令都大同小异,根据需求选择对应命令来获取所需的网络流量信息,以上命令的详细使用本文不再赘余。

3、总结

在《Linux 网卡带宽》此篇博文中,我们知道了如何查看服务器的网卡带宽,在本文中介绍了2种常用方式用于实时的查看服务器的网络流量信息,在日常服务器巡检过程中,我们需要监控服务器的网络带宽,对比服务器实时进出流量是否小于网络带宽,避免网络带宽成为业务服务的性能瓶颈。

参考:服务器上的监控网络宽带的18个常用命令(服务器系统监控)

posted @ 2022-12-21 13:49  人艰不拆_zmc  阅读(1333)  评论(0编辑  收藏  举报