高逼格的 2 个小神器,用好了流量监控不用愁!
在日常运维环境中,我们肯定会遇到以下这种需求:
1、网络流量异常,不知道是哪个程序的流量爆涨?
2、日常需要监控网络实时的流量进去数据
面试装逼系列|这篇文章,让运维监控不再成为你的短板!
学会这 18 个工具,你一定能真正理解如何监控网络带宽!
基于这两点需求,民工哥今天给大家分享两个很强大的命令工具:
- Nethogs
- Nload
1.Nethogs
1.1 Nethogs介绍
NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。
NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组。NetHogs不需要依赖载入某个特殊的内核模块。如果发生了网络阻塞你可以启动NetHogs立即看到哪个PID造成的这种状况。这样就很容易找出哪个程序跑飞了然后突然占用你的带宽。
1.2 Nethogs安装
安装依赖包
[root@rs-server ~]# yum install libpcap libpcap-devel -y
[root@rs-server ~]# yum -y install epel-release
安装nethogs
[root@rs-server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@rs-server ~]# uname -r
3.10.0-693.el7.x86_64
[root@rs-server ~]# yum install nethogs -y
[root@rs-server ~]# nethogs -help
usage: nethogs [-V] [-h] [-b] [-d seconds] [-v mode] [-c count] [-t] [-p] [-s] [device [device [device ...]]]
-V : prints version.
-h : prints this help.
-b : bughunt mode - implies tracemode.
-d : delay for update refresh rate in seconds. default is 1.
-v : view mode (0 = KB/s, 1 = total KB, 2 = total B, 3 = total MB). default is 0.
-c : number of updates. default is 0 (unlimited).
-t : tracemode.
-p : sniff in promiscious mode (not recommended).
-s : sort output by sent column.
-a : monitor all devices, even loopback/stopped ones.
device : device(s) to monitor. default is all interfaces up and running excluding loopback
When nethogs is running, press:
q: quit
s: sort by SENT traffic
r: sort by RECEIVE traffic
m: switch between total (KB, B, MB) and KB/s mode
输入命令nethogs -help出现帮助信息,表明安装成功,非常的简单快速。
1.3 Nethogs命令介绍
以下是NetHogs的一些交互命令(键盘快捷键)
- m : 修改单位
- r : 按流量排序
- s : 按发送流量排序
- q : 退出命令提示符
参数介绍:
- -V : 显示版本信息,注意是大写字母V.
- -v:切换显示单位,默认是默认是KB/s(0表示 KB/s,1表示KB,2表示B,3表示MB)
- -c:检测次数(后面直接跟数字)
- -a:检测所有的设备
- -d : 延迟更新刷新速率,以秒为单位。默认值为 1.
- -t : 跟踪模式.
- -b : bug 狩猎模式 — — 意味着跟踪模式.
- -p : 混合模式(不推荐).
- device: 要监视的设备名称. 默认为 eth0
1.4 Nethogs实践
[root@rs-server ~]# nethogs
Ethernet link detected
Ethernet link detected
Waiting for first packet to arrive (see sourceforge.net bug 1019381)
NetHogs version 0.8.5
PID USER PROGRAM DEV SENT RECEIVED
1023 root sshd: root@pts/0 ens33 0.166 0.059 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 0.166 0.059 KB/sec
直接使用nethogs命令的显示界面如上
[root@rs-server ~]# nethogs -d 2 -v 3 -c 5 -a
Ethernet link detected
Ethernet link detected
Ethernet link detected
Waiting for first packet to arrive (see sourceforge.net bug 1019381)
NetHogs version 0.8.5
PID USER PROGRAM DEV SENT RECEIVED
1023 root sshd: root@pts/0 ens33 0.001 0.000 MB
? root unknown TCP 0.000 0.000 MB
TOTAL 0.001 0.000 MB
nethogs命令功能还是挺强大的,抓紧时间练习一下吧!!
2.Nload
2.1 nload介绍
nload是一个实时监控网络流量和带宽使用情况,展示进出的流量情况,不仅有数值,也可以有动态图展示。
2.2 nload 安装
[root@rs-server ~]# yum -y install epel-release
nload安装
[root@rs-server ~]# yum install nload -y
nload如果直接输入这个命令默认只查看第一个网络的流量进出情况,一般是在nload后面指定网络,可以指定多个网络。
2.3 nload操作介绍
nload 默认分为上下两块:
- 上半部分是:Incoming也就是进入网卡的流量,
- 下半部分是:Outgoing,也就是从这块网卡出去的流量,
每部分都有当前流量(Curr),
平均流量(Avg),
最小流量(Min),
最大流量(Max),
总和流量(Ttl)这几个部分,看起来还是蛮直观的。
nload默认的是eth0网卡,如果你想监测eth1网卡的流量 #nload eth1
参数介绍
- -a:全部数据的刷新时间周期,单位是秒,默认是300.
- -i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
- -m:不显示流量图,只显示统计数据。
- -o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
- -t:显示数据的刷新时间间隔,单位是毫秒,默认500。
- -u:设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的.注意大小写单位不同!
- h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.
- H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.
- -U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)!
- Devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。
界面操作
- 上下方向键、左右方向键、enter键或者tab键都就可以切换查看多个网卡的流量情况
- 按 F2 显示选项窗口。
- 按 F5 将当前设置保存到用户配置文件。
- 按 F6 从配置文件重新加载设置。
- 按 q 或者 Ctrl+C 退出 nload。
2.4 nload实践
Device ens33 [192.168.1.100] (1/1):
============================================================================
Incoming:
Curr: 936.00 Bit/s
Avg: 1.27 kBit/s
Min: 840.00 Bit/s
Max: 6.26 kBit/s
Ttl: 8.78 MByte
Outgoing:
Curr: 7.70 kBit/s
Avg: 7.70 kBit/s
Min: 3.97 kBit/s
Max: 10.49 kBit/s
Ttl: 299.35 kByte
更多相关的参数与操作,大家可以自己练习一下。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux 远程控制windows系统下的程序(三种方法)
- 详解Linux上svn命令行批量操作
- 详解linux ntp服务器时间同步设置
- CentOS设置静态IP的方法总结
- ubuntu服务器上快速部署docker的方法
- centos7使用supervisor的详细教程
- Ubuntu安装PHP和PHP Nginx配置方法
- Django在Ubuntu14.04的部署方法
- ubuntu19系统及以下版本安装android studio的教程
- CentOS7升级内核kernel5.0版本
- 详解ubuntu14.04如何设置静态IP的方法
- linux安装图形化界面的操作方法
- Apache FlinkCEP 实现超时状态监控的步骤详解
- 解决Centos7下crontab+shell脚本定期自动删除文件问题
- 详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势