前言

我们的很多服务大都是部署在Linux服务器上的,我们在生产中可能会遇见很多问题,如网络慢,访问卡等,那么就需要对Linux的机器的网络流量进行监控,这样我们才能分析排查问题。接下来介绍几个比较好用的小工具,iftop和nethogs,用于排查linux机器的网络问题。

iftop

iftop用于网卡机器级别的流量监控,可以实时显示当前机器和其他主机之间的网络流量。

安装

yum install -y iftop

安装完成后可以通过iftop命令启动,iftop默认监控第一个可用网卡的流量,可以通过参数指定要监控的网卡比如iftop -i eth0。网卡名称可以通过ifconfig获取。启动后的界面如下:

最上面的是一个类似于刻度尺,通过下面的机器的进度条表示和某个机器网络流量的大小。

VM_0_9_centos  =>    169.254.0.4    3.19Kb  2.90Kb  3.17Kb
               <=                   1.47Kb  1.480Kb 1.48Kb

每两行代表和每个host之间不同方向的网络流量,第一列是源主机,第二列是目标主机,第三列分别是最近2s, 10s和40s的平均网络流量。默认按10s的网络流量进行排序。

TX:  cumm:   82.5KB   peak:   67.3Kb    rates:    5.02Kb   5.69Kb  16.0Kb
RX:          21.1KB           10.1Kb              1.74Kb   2.19Kb  3.99Kb
TOTAL:       104KB            77.4Kb              6.76Kb   7.88Kb  20.0Kb

底部显示全局的流量统计,cumm表示运行至今的累计情况,peak表示峰值数据, rates 表示最近2s,10s和40s秒平均网络流量。

快捷键

在监控界面可以通过快捷键来调整监控显示项。可以通过h或者?查看支持查快捷键用法。

主机显示

 n - 是否开启DNS解析,显示机器名或者IP    
 s - 是否源主机    
 d - 是否显示目标主机
 t - 流量统计显示模式,两行显示,一行显示,只显示发送流量或者接收流量 

端口显示

N - toggle service resolution          
S - 是否显示源主机端口           
D - 是否显示目标主机端口
p - 是否显示端口号 

排序

 1/2/3 - 根据2s,10s和40s的流量排序
 < - 按源主机进行排序
 > - 按目标主机排序
 o - 冻结当前排序,避免机器排序出现变化,方便观察固定主机流量

其他

 P - 暂停刷新
 h - 显示帮助
 b - 是否显示进度条和刻度尺
 B - 循环切换按2s,10s, 40s显示进度条
 T - 显示或者隐藏统计总量
 j/k - 滚动显示
 f - 编辑过滤器代码
 l - 屏幕文本搜索过滤
 ! - 执行Shell命令
 q - 退出

其中过滤器代码参考pcap formatted filters

语法

iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]
   -h                  显示本帮助(Help)信息
   -n                  不进行主机名(hostName)查找
   -N                  不将端口号(port Number)转换成对应的服务 to services
   -p                  混合(Promiscuous)模式(显示网络相关的其他主机信息)
   -b                  不显示流量图形条(Bar)
   -B                  以字节(Byte)为单位,显示带宽(Bandwidth);默认以比特(bit)显示的
   -i interface        监控的网卡接口(interface)
   -f filter code      包统计时,使用过滤码;默认:无,只统计IP包
   -F net/mask         显示特定IPv4网段的进出流量(Flow);如# iftop -F 10.10.1.0/24
   -G net6/mask6       显示特定IPv6网段的进出流量(Flow)
   -l                  显示并统计IPv6本地(Local)链接的流量(默认:关)
   -P                  显示端口(Port)
   -m limit            设置显示界面上侧的带宽刻度(liMit)
   -c config file      指定配置(Config)文件
   -t                  使用不带窗口菜单的文本(text)接口


   排序:
   -o 2s                Sort by first column (2s traffic average)
   -o 10s               Sort by second column (10s traffic average) [default]
   -o 40s               Sort by third column (40s traffic average)
   -o source            Sort by source address
   -o destination       Sort by destination address


   The following options are only available in combination with -t
   -s num              print one single text output afer num seconds, then quit
   -L num              number of lines to print
nethogs

nethogs用于监控统计每个进程的带宽使用

安装

yum install -y nethogs

1. nethogs 使用说明和例子
1)用法:nethogs[-v][-h][-b][-d秒][-v模式][-c计数][-t][-p][-s][设备[设备…]]
 

-V:打印版本。
 
-H:打印这个帮助。
 
-B:BugHunt模式-表示跟踪模式。
 
-D:更新刷新率的延迟(秒)。默认值为1。
 
-V:查看模式(0=kb/s,1=total kb,2=total b,3=total mb)。默认值为0。
 
-C:更新次数。默认值为0(无限制)。
 
-TraceMod。
 
-P:在混乱模式下嗅探(不推荐)。
 
-S:按发送列对输出进行排序。
 
-A:监控所有设备,甚至是回送/停止的设备。

 
设备:要监视的设备。默认值是除环回之外的所有已启动和正在运行的接口
 
NetHogs运行时,按:

q:退出
S:按发送流量排序
R:按接收流量排序
M:在总计(kb、b、m b)和kb/s模式之间切换

 2)使用例子
[root@ald8 ~]# nethogs
 [root@ald8 ~]# nethogs eth0 eth1         

// 假如有多个网卡要同时查看,可以网卡名依次写上即可
 [root@ald8 ~]# nethogs eth1               

 //  指定查看某一个网卡

往期精彩文章

kubernetes全栈技术+企业案例演示【带你快速掌握和使用k8s】

kubernetes面试题汇总

DevOps视频和资料免费领取

kubernetes技术分享-可用于企业内部培训

谈谈我的IT发展之路

kubernetes系列文章第一篇-k8s基本介绍

kubernetes系列文章第二篇-kubectl

了解pod和pod的生命周期-这一篇文章就够了

Kubernetes中部署MySQL高可用集群

Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档

k8s1.18多master节点高可用集群安装-超详细中文官方文档

k8s中蓝绿部署、金丝雀发布、滚动更新汇总

运维常见问题汇总-tomcat篇

关于linux内核参数的调优,你需要知道

kubernetes持久化存储volume

kubernetes挂载ceph rbd和cephfs

报警神器Alertmanager发送报警到多个渠道

jenkins+kubernetes+harbor+gitlab构建企业级devops平台

kubernetes网络插件-flannel篇

kubernetes网络插件-calico篇

kubernetes认证、授权、准入控制

限制不同的用户操作k8s资源

面试真题&技术资料免费领取-覆盖面超全~

Prometheus监控MySQL

Prometheus监控Nginx

Prometheus监控Tomcat

linux面试题汇总

测试通过storageclass动态生成pv

通过编写k8s的资源清单yaml文件部署gitlab服务

helm安装和使用-通过helm部署k8s应用

Prometheus Operator-上篇-安装和使用篇

Prometheus Operator-下篇

通过kubeconfig登陆k8s的dashboard ui界面

通过token令牌登陆k8s dashboard ui界面      

prometheus operator监控k8s集群之外的haproxy组件

kubernetes原生的CI/CD工具Tekton-一定要看看~

kubernetes DNS服务详细介绍 

技术交流群

学无止境,了解更多关于kubernetes/docker/devops/openstack/openshift/linux/IaaS/PaaS相关内容,想要获取更多资料和免费视频,可按如下方式进入技术交流群

                               扫码加群????

微信:luckylucky421302

微信公众号

                                     长按指纹关注公众号????

                                       

                                       点击在看少个 bug????

Logo

更多推荐