介绍
在Linux系统维护工作中,及时有效地监控网络流量至关重要。面对突发的流量告警,快速锁定引起异常流量的具体进程往往成为关键任务。然而,现行状态下,登录Linux系统查究根源耗时较多,这对快速响应业务问题形成了挑战,直接影响到我们解决问题的效率和绩效评价。为此,下面就提供一套简易高效的排查Linux系统中导致网络异常的进程的方法,助力运维工作更加得心应手。
工具安装
工欲善其事必先利其器,在这里我们需要安装一个linux终端命令行的工具
工具开源地址:
gitee: https://gitee.com/Davin168/tmd-top
github: https://github.com/CDWEN0526/tmd-top
要求
- linux操作系统安装了
python
,版本需要再大于等于3.8
- linux操作系统安装
netsts
命令,pidstat
命令
安装
在这里我们用python的pip
命令安装一个tmd-top
库,这个库能实时展示操作系统当前网络状态
root@davin-system:~# sudo pip install tmd-top
运行
安装完成后,我们运行tmd-top
命令来,来查看当前服务器的网络情况
root@davin-system:~# sudo tmd-top
命令运行截图
网卡流量情况
根据tmd-top
的运行结果来看,我们可以在NetworkCard
的块中可以看到每个网卡的流量情况
其中eth0
网卡上传是20.37KB,下载是266.65KB
中间件&监听服务的流量情况
MonitorTraffic
是对服务器内部署的中间件以及程序服务的流量进行监控,只要有启动监听端口
的程序都会在这个监控图表内,
表格详解:在图表中我们可以看到进程的
pid #进程的pid号
name #进程的名称
ListenAddr #进程的监听地址
ListenPort #进程的监听端口
IpNum #与进程建立tcp连接的ip个数
ConnectNum #与进程建立tcp连接的连接个数
up #该进程的每秒上传流量大小
down #该进程的每秒下载流量大小
men #该进程对内存的占用大小,单位是%百分比
io_r #该进程对io读的大小 ,单位KB
io_w #该进程对io写的大小 ,单位KB
分析sshd进程: 在这里我们分析一下sshd
的服务,我们用鼠标点击一下sshd
,
点击了
sshd
进程后,我们去看Detailed
视图,在Detailed
视图中,我们可以很明显的发现,除了自己的ssh连接ip,有德国的ip在连接,说明有人在尝试暴力破解我的ssh(当然是不可能成功的)
监控内部程序产生的流量
在RequestTraffic
视图中,我们可以看到运行在linux服务器上的程序或者脚本,所产生的流量情况,能快速定位到自己写的程序对服务器产生了多大的网络情况
这里我们拿filebeat
程序来举例,鼠标点击filebeat
程序,我们可以在Detailed
视图上看到filebeat产生的tcp连接,这里很明显可以看到我的filebeat在连接内网的172.18.86.113
的6379
端口,确实这台机器上是有个redis服务在运行,所以能很直观的发现程序在连接redis
快捷键
说明
可以鼠标点击快捷键的图标,或按键盘。
q #退出
v #可以在QueryPID内输入pid号进行查询详情
t #可以减慢数据刷新速度
y #恢复被减慢后的数据刷新速度
c #对连接数(ConnectNum)从大到小排序
i #对ip个数(IpNum)从大到小排序
u #对上传从大到小排序
d #对下载从大到小排序
z #对cpu从大到小排序
x #对内存从大到小排序
n #对io读取从大到小排序
m #对io写入从大到小排序