运维常用网络监控命令

摘要

碰到网络问题的场景。可以使用一些命令来快速定位问题,而能够用来排查网络问题的命令多种多样。

本文以以下几个维度来筛选出一些网络相关的命令仅供大家参考

  • 尽量常用系统覆盖全面(centos/ubuntu/)
  • 使用简单,安装即用
  • 显示明了,快速定位

推荐命令如下

  • 查看进程流量:nethogs
  • 查看明细流量以及总流量:iptraf
  • 查看历史数据:sar
  • 生成报表:dstat

原理解析

  • 使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况
    • 基于pcap库,能够过滤流量
  • 读取/proc/net/dev文件

nethogs

小巧的net top工具,可以显示每个进程所使用的带宽,并对列表排序。有带宽激增的情况出现可以用来快速定位。

  • 原理:进程监控
  • 使用难度:简单
  • 优势:显示进程使用带宽
  • 缺陷:-
  • 推荐指数:**

iptraf

交互式、色彩鲜艳的IP局域网监控工具。

  • 可以显示单个网卡,每个连接的流量
  • 可以按照网卡显示实时总流量
  • 可以按照网卡区分tcp、udp、icmp等流量汇总
  • 可以按照包大小显示
  • 可以按照单个网卡的端口显示流量
  • 可以按照硬件网络接口显示

  • 原理:使用pcap库
  • 使用难度:交互式,简单
  • 优势:功能强大
  • 缺陷:无法静态输出
  • 推荐指数:*

nload

命令行工具,可以按照网卡显示当前进、出流量的实时流量(包括最大、最小、平均值),可以绘制简单的流量图表。

  • 原理:读取/proc/net/dev文件
  • 使用难度:简单
  • 优势:显示总流量
  • 缺陷:-
  • 推荐指数:**

bwm-ng

功能类似于nload,没有最大、最小、平均值显示,但是支持条形图显示

  • 原理:读取/proc/net/dev文件
  • 使用难度:简单
  • 优势:显示总流量,条形图显示
  • 缺陷:没有最大、最小、平均值
  • 推荐指数:**

bwm-ng -o curses2

iftop

可以显示当前每一个连接的流量数据

  • 原理:使用pcap库
  • 使用难度:简单
  • 优势:过滤流量
  • 缺陷:无法显示进程号等
  • 推荐指数:**

n选项可以防止iftop将IP地址解析成主机名,解析本身就会带来额外的网络流量。

dstat

用python语言编写,可以监控系统的不同统计信息,并使用批处理模式来报告,或者将相关数据记入到CSV或类似的文件。

  • 原理:-
  • 使用难度:参数多,可定制,难度一般
  • 优势:不仅可以显示流量,还可以显示系统其它指标,如:vmstat、sar、collectl等
  • 缺陷:只能显示实时总流量
  • 推荐指数:**

sar

sar(System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:

  • 文件的读写情况
  • 系统调用的使用情况
  • 磁盘I/O
  • CPU效率
  • 内存使用状况
  • 进程活动及IPC有关的活动等

  • 原理:需要启动sysstat服务
  • 使用难度:参数多,可定制
  • 优势:可以显示历史数据,可以静态输出
  • 缺陷:依赖服务,历史数据颗粒度差
  • 推荐指数:*

查看实时流量

查看某一天的历史数据