关键词:
运维工程师必备的18个网络带宽监控常用命令马哥教育
本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。
一些命令可以显示单个进程所使用的带宽。这样一来,用户很容易发现过度使用网络带宽的某个进程。
这些工具使用不同的机制来制作流量报告。nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载。
下面是按功能划分的命令名称。
监控总体带宽使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
监控总体带宽使用(批量式输出)――vnstat、ifstat、dstat和collectl
每个套接字连接的带宽使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
每个进程的带宽使用――nethogs
- nload
nload是一个命令行工具,让用户可以分开来监控入站流量和出站流量。它还可以绘制图表以显示入站流量和出站流量,视图比例可以调整。用起来很简单,不支持许多选项。
所以,如果你只需要快速查看总带宽使用情况,无需每个进程的详细情况,那么nload用起来很方便。
$ nload
安装nload:Fedora和Ubuntu在默认软件库里面就有nload。CentOS用户则需要从Epel软件库获得nload。
fedora或centos
$ yum install nload -y
ubuntu/debian
$ sudo apt-get install nload
- iftop
iftop可测量通过每一个套接字连接传输的数据;它采用的工作方式有别于nload。iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况。
虽然iftop报告每个连接所使用的带宽,但它无法报告参与某个套按字连接的进程名称/编号(ID)。不过由于基于pcap库,iftop能够过滤流量,并报告由过滤器指定的所选定主机连接的带宽使用情况。
$ sudo iftop -n
n选项可以防止iftop将IP地址解析成主机名,解析本身就会带来额外的网络流量。
安装iftop:Ubuntu/Debian/Fedora用户可以从默认软件库获得它。CentOS用户可以从Epel获得它。
fedora或centos
yum install iftop -y
ubuntu或 debian
$ sudo apt-get install iftop
- iptraf
iptraf是一款交互式、色彩鲜艳的IP局域网监控工具。它可以显示每个连接以及主机之间传输的数据量。下面是屏幕截图。
$ sudo iptraf
安装iptraf:
Centos(基本软件库)
$ yum install iptraf
fedora或centos(带epel)
$ yum install iptraf-ng -y
ubuntu或debian
$ sudo apt-get install iptraf iptraf-ng
- nethogs
nethogs是一款小巧的"net top"工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面。万一出现带宽使用突然激增的情况,用户迅速打开nethogs,就可以找到导致带宽使用激增的进程。nethogs可以报告程序的进程编号(PID)、用户和路径。
$ sudo nethogs
安装nethogs:Ubuntu、Debian和Fedora用户可以从默认软件库获得。CentOS用户则需要Epel。
ubuntu或debian(默认软件库)
$ sudo apt-get install nethogs
fedora或centos(来自epel)
$ sudo yum install nethogs -y
- bmon
bmon(带宽监控器)是一款类似nload的工具,它可以显示系统上所有网络接口的流量负载。输出结果还含有图表和剖面,附有数据包层面的详细信息。
安装bmon:Ubuntu、Debian和Fedora用户可以从默认软件库来安装。CentOS用户则需要安装repoforge,因为Epel里面没有bmon。
ubuntu或debian
$ sudo apt-get install bmon
fedora或centos(来自repoforge)
$ sudo yum install bmon
bmon支持许多选项,能够制作HTML格式的报告。欲知更多信息,请参阅参考手册页。
- slurm
slurm是另一款网络负载监控器,可以显示设备的统计信息,还能显示ASCII图形。它支持三种不同类型的图形,使用c键、s键和l键即可激活每种图形。slurm功能简单,无法显示关于网络负载的任何更进一步的详细信息。
$ slurm -s -i eth0
安装slurm
debian或ubuntu
$ sudo apt-get install slurm
fedora或centos
$ sudo yum install slurm -y
- tcptrack
tcptrack类似iftop,使用pcap库来捕获数据包,并计算各种统计信息,比如每个连接所使用的带宽。它还支持标准的pcap过滤器,这些过滤器可用来监控特定的连接。
安装tcptrack:Ubuntu、Debian和Fedora在默认软件库里面就有它。CentOS用户则需要从RepoForge获得它,因为Epel里面没有它。
ubuntu, debian
$ sudo apt-get install tcptrack
fedora, centos(来自repoforge软件库)
$ sudo yum install tcptrack
- vnstat
vnstat与另外大多数工具有点不一样。它实际上运行后台服务/守护进程,始终不停地记录所传输数据的大小。之外,它可以用来制作显示网络使用历史情况的报告。
$ service vnstat status
- vnStat daemon is running
运行没有任何选项的vnstat,只会显示自守护进程运行以来所传输的数据总量。
$ vnstat
Database updated: Mon Mar 17 15:26:59 2014
eth0 since 06/12/13
rx: 135.14 GiB tx: 35.76 GiB total: 170.90 GiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+-------------
Feb ‘14 8.19 GiB | 2.08 GiB | 10.27 GiB | 35.60 kbit/s
Mar ‘14 4.98 GiB | 1.52 GiB | 6.50 GiB | 37.93 kbit/s
------------------------+-------------+-------------+-------------
estimated 9.28 GiB | 2.83 GiB | 12.11 GiB |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+-------------
yesterday 236.11 MiB | 98.61 MiB | 334.72 MiB | 31.74 kbit/s
today 128.55 MiB | 41.00 MiB | 169.56 MiB | 24.97 kbit/s
------------------------+-------------+-------------+-------------
estimated 199 MiB | 63 MiB | 262 MiB |
想实时监控带宽使用情况,请使用"-l"选项(实时模式)。然后,它会显示入站数据和出站数据所使用的总带宽量,但非常精确地显示,没有关于主机连接或进程的任何内部详细信息。
$ vnstat -l -i eth0
Monitoring eth0... (press CTRL-C to stop)
rx: 12 kbit/s 10 p/s tx: 12 kbit/s 11 p/s
vnstat更像是一款制作历史报告的工具,显示每天或过去一个月使用了多少带宽。它并不是严格意义上的实时监控网络的工具。
vnstat支持许多选项,支持哪些选项方面的详细信息请参阅参考手册页。
安装vnstat
ubuntu或debian
$ sudo apt-get install vnstat
fedora或 centos(来自epel)
$ sudo yum install vnstat
- bwm-ng
bwm-ng(下一代带宽监控器)是另一款非常简单的实时网络负载监控工具,可以报告摘要信息,显示进出系统上所有可用网络接口的不同数据的传输速度。
$ bwm-ng
bwm-ng v0.6 (probing every 0.500s), press ‘h‘ for help
input: /proc/net/dev type: rate
/ iface Rx Tx T
ot=================================================================
== eth0: 0.53 KB/s 1.31 KB/s 1.84
KB lo: 0.00 KB/s 0.00 KB/s 0.00
KB-------------------------------------------------------------------------------------------------------------
total: 0.53 KB/s 1.31 KB/s 1.84
KB/s
如果控制台足够大,bwm-ng还能使用curses2输出模式,为流量绘制条形图。
$ bwm-ng -o curses2
安装bwm-ng:在CentOS上,可以从Epel来安装bwm-ng。
ubuntu或debian
$ sudo apt-get install bwm-ng
fedora或centos(来自epel)
$ sudo apt-get install bwm-ng
- cbm:Color Bandwidth Meter
这是一款小巧简单的带宽监控工具,可以显示通过诸网络接口的流量大小。没有进一步的选项,仅仅实时显示和更新流量的统计信息。
$ sudo apt-get install cbm
- speedometer
这是另一款小巧而简单的工具,仅仅绘制外观漂亮的图形,显示通过某个接口传输的入站流量和出站流量。
$ speedometer -r eth0 -t eth0
安装speedometer
ubuntu或debian用户
$ sudo apt-get install speedometer
- pktstat
pktstat可以实时显示所有活动连接,并显示哪些数据通过这些活动连接传输的速度。它还可以显示连接类型,比如TCP连接或UDP连接;如果涉及HTTP连接,还会显示关于HTTP请求的详细信息。
$ sudo pktstat -i eth0 -nt
$ sudo apt-get install pktstat
- netwatch
netwatch是netdiag工具库的一部分,它也可以显示本地主机与其他远程主机之间的连接,并显示哪些数据在每个连接上所传输的速度。
$ sudo netwatch -e eth0 -nt
$ sudo apt-get install netdiag
- trafshow
与netwatch和pktstat一样,trafshow也可以报告当前活动连接、它们使用的协议以及每条连接上的数据传输速度。它能使用pcap类型过滤器,对连接进行过滤。
只监控TCP连接
$ sudo trafshow -i eth0 tcp
$ sudo apt-get install netdiag
- netload
netload命令只显示关于当前流量负载的一份简短报告,并显示自程序启动以来所传输的总字节量。没有更多的功能特性。它是netdiag的一部分。
$ netload eth0
$ sudo apt-get install netdiag
- ifstat
ifstat能够以批处理式模式显示网络带宽。输出采用的一种格式便于用户使用其他程序或实用工具来记入日志和分析。
$ ifstat -t -i eth0 0.5
Time eth0
HH:MM:SS KB/s in KB/s out
09:59:21 2.62 2.80
09:59:22 2.10 1.78
09:59:22 2.67 1.84
09:59:23 2.06 1.98
09:59:23 1.73 1.79
安装ifstat:Ubuntu、Debian和Fedora用户在默认软件库里面就有它。CentOS用户则需要从Repoforge获得它,因为Epel里面没有它。
ubuntu, debian
$ sudo apt-get install ifstat
fedora, centos(Repoforge)
$ sudo yum install ifstat
- dstat
dstat是一款用途广泛的工具(用python语言编写),它可以监控系统的不同统计信息,并使用批处理模式来报告,或者将相关数据记入到CSV或类似的文件。这个例子显示了如何使用dstat来报告网络带宽。
安装dstat
$ dstat -nt
-net/total- ----system----
recv send| time
0 0 |23-03 10:27:13
1738B 1810B|23-03 10:27:14
2937B 2610B|23-03 10:27:15
2319B 2232B|23-03 10:27:16
2738B 2508B|23-03 10:27:17
- collectl
collectl以一种类似dstat的格式报告系统的统计信息;与dstat一样,它也收集关于系统不同资源(如处理器、内存和网络等)的统计信息。这里给出的一个简单例子显示了如何使用collectl来报告网络使用/带宽。
$ collectl -sn -oT -i0.5
waiting for 0.5 second sample...
<----------Network---------->
#Time KBIn PktIn KBOut PktOut
10:32:01 40 58 43 66
10:32:01 27 58 3 32
10:32:02 3 28 9 44
10:32:02 5 42 96 96
10:32:03 5 48 3 28
安装collectl
Ubuntu/Debian用户
$ sudo apt-get install collectl
#Fedora
$ sudo yum install collectl
结束语
上述几个使用方便的命令可以迅速检查Linux服务器上的网络带宽使用情况。不过,这些命令需要用户通过SSH登录到远程服务器。另外,基于Web的监控工具也可以用来实现同样的任务。
ntop和darkstat是面向Linux系统的其中两个基本的基于Web的网络监控工具。除此之外还有企业级监控工具,比如nagios,它们提供了一批功能特性,不仅仅可以监控服务器,还能监控整个基础设施。
作者:sara
来源:http://bbs.jfh.com/topic/26720
《Linux云计算及运维架构师高薪实战班》2018年11月26日即将开课中,120天冲击Linux运维年薪30万,改变速约~~~~
linux服务器上监控网络带宽的18个常用命令zz
Linux服务器上监控网络带宽的18个常用命令本文介绍了一些可以用来监控网络使用情况的Linux命令行工具。这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度。入站流量和出站流量分开来显示。作者:... 查看详情
22天.怎样做个合格的网络运维工程师
怎样做一名合格的公司网络运维工程师1.企业网常用的网络技术2.企业网中常见的数通设备3.关注市场占有率高的厂商的数通设备4.交换机常用技术5.路由交换常用架构6.通过各主流厂商模拟器模拟实际操作7.参考各厂商官网方案不... 查看详情
linux运维18:网络和监控
系列专题:Linux运维入门教程 在网络运维中网络和监控命令类似于这些:ping,ip,arping,netstat等命令,用于查看linux服务器ip地址,管理服务器网络配置等。下面让我们看看在Linux下的网络运维命令和监控... 查看详情
运维的运维工程师使用的平台、工具
运维工程师使用的运维平台和工具包括:Web服务器:apache、tomcat、nginx、lighttpd监控:nagios、ganglia、cacti、zabbix自动部署:ansible、sshpt配置管理:puppet、cfengine负载均衡:lvs、haproxy传输工具:scribe、flume备份工具:rsync、wget数据库... 查看详情
linux企业运维人员必备150个命令汇总
命令功能说明 线上查询及帮助命令(2个)man查看命令帮助,命令的词典,更复杂的还有info,但不常用。help查看Linux内置命令的帮助,比如cd命令。 文件和目录操作命令(18个)ls全拼list,功能是列出目录的内容及其内容属性... 查看详情
linux系统有哪些常用版本,它们有啥区别
...个付费使用;1)Linux运维岗位及工作内容互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师... 查看详情
linux运维工程师须掌握的基础技能都有哪些?
1、Linux基础命令及脚本:shell是基本要求,最好再懂点perl或python等。如果不懂脚本,怎么把重复的劳动变得简单呢?2、系统监控命令:目的是获取系统当前的运行状态,遇到故障等要懂得分析排查。系统调优并懂得原理,知道... 查看详情
网络运维必备
06.QOS的作用是什么?对网络中的流量按照一定的规则进行分类,并对这些流量进行带宽的预留和保证,从而确保感兴趣流量在网络中高效率、低延迟的转发;07.简述ASA防火墙CONN表五元组的内容源IP地址、目的IP地址、源端口号、... 查看详情
熬了多少个夜晚,大家期待的《网络工程师思科华为华三实战案例红宝书》即网工必备技术命令大全版本1完书
...晚,最近也没空更新博客。军哥编写的大家期待的《网络工程师思科华为华三实战案例红宝书》即网工必备技术命令大全版本1完书,一本融合了思科华为华三的实战型辅导书(辅助乾颐堂QCNA课程的)。不多说上图目录关于作者2... 查看详情
linux记录-linux企业运维人员最常用150个命令
命令功能说明线上查询及帮助命令(2个)man查看命令帮助,命令的词典,更复杂的还有info,但不常用。help查看Linux内置命令的帮助,比如cd命令。文件和目录操作命令(18个)ls全拼list,功能是列出目录的内容及其内容属性信息。cd全... 查看详情
linux最常用命令
作为一个测试人员我们不需要像运维工程师、数据库管理员、网络工程师那样对操作系统、数据库、网络等有多么深入的了解,但是常用的基本操作是必须要懂得的。这里就先总结一下常用的linux操作系统下的操作及命令。&... 查看详情
运维常用的系统命令
man:查看命令帮助,命令的词典,更复杂的还有info,但不常用。help:查看Linux内置命令的帮助,比如cd命令。一、文件和目录操作命令(18个)ls:全拼list,功能是列出目录的内容及其内容属性信息。cd:全拼changedirectory,功能是从... 查看详情
运维工程师监控工作之mysql数据库监控
...终落到数据库层面,因此对Mysql数据库的监控几乎是运维工程师的看家本领。数据库监控通常分为业务监控、应用监控、组件监控、资源监控几个层面。按照google对于监控工作的四个黄金指标论述,即延迟、流量、错误和饱和度... 查看详情
linux运维必备150个命令,速度收藏~
来源:banana童地址:www.cnblogs.com/bananaaa/p/7774467.htmllinux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是... 查看详情
运维工程师从入门到放弃必备书籍
By:Linxu http://www.walker0909.com/ 《鸟哥的私房菜》(基础版/服务器版)《构建之法——现代软件工程》《RabbitMQ实战高效部署分布式消息队列》《程序员必读软件架构》《OpenStack开源云王者归来》《ELKstack权威指南》《Nginx高... 查看详情
elasitcsearch开发运维常用命令集锦
Elasitcsearch集群开发运维常用命令集锦,后面会逐步扩展完善。早期总结的开发、运维常见命令清单列表如下:1、干货|Elasticsearch运维实战常用命令清单2、干货|Elasticsearch Top10监控指标3、干货|Elasticsearch开发实战常用命令... 查看详情
高可用
高级研发工程师和架构师的区别不在于掌握了多少技术,而在于你所能驾驭系统的边界。这其实也反映了一个研发工程师的成长历程,起初独立负责一个功能,然后负责一个系统模块,再负责一个系统,最后负责多个系统或业务... 查看详情
zabbix运维监控
一、监控概述1分类:硬件监控----系统监控----应用监控----业务监控----安全监控----网络监控----WEB监控----自动化监控-----分布式监控2内容:磁盘容易坏、CPU(负载、用户态及内核态、使用率)、内存(使用率、寻址、大页面内存... 查看详情