1. 介绍
本文主要演示下分析网络流量异常的方法和步骤:
- 使用iftop和netstat确定流量消耗较大的进程和端口
- 使用tcpdump抓取流量较大端口的包
- 使用winshark分析包内数据
2. 准备工作
2.1 tcpdump
在运行alluxio的各个节点上安装tcpdump。
yum install tcpdump
用法:
tcpdump -i 网络设备名 [可选的其他额外选项]
通过几个例子来了解tcpdump的主要用法:
#1. 获取10.8.12.16和10.8.12.17或者10.8.12.18在非80端口上通信的tcp包信息,并且以详细方式显示,再写入当前目录下的net.dump文件。注意host port信息放在最后 sudo tcpdump -vv -w net.dump host 10.8.12.16 and \(10.8.12.17 or 10.8.12.18\) and port ! 80 and tcp #2. src 和dsc用法,可以用在hostname或者端口前面。下面例子表示只抓取10.8.12.16为源,目标是80端口的数据包 tcpdump src host 10.8.12.16 and dst port 80
2.2 winshark
服务器上只有终端,我们在本地的win环境下安装下winshark.
2.3 安装iftop
iftop工具可以帮助我们定位哪些端口上的流量比较大,这样我们使用tcpdump的时候就更加的有针对性了。
关于iftop的安装使用可以参考我的另外一篇文章: iftop工具监控网络流量
经过实验发现:
10.8.12.18上在JOB运行时消耗流量较多的端口如下:
10.8.12.16上在JOB运行时消耗流量较多的端口如下:
3.iftop 锁定消耗流量最大的端口
4. dump数据
alluxio是主从结构的,我们就监控下master 和worker之间通信的包信息即可。
master地址:10.8.12.16:19998
worekr地址:10.8.12.17:30000,10.8.12.18:30000,10.8.12.19:30000
3.1 抓取master->worker的日志信息
使用命令
# 监控master到worker上30000端口的流量,每个包65535字节,我们这里抓个10个包
sudo tcpdump -vv -w MasterToWorker.dump src host 10.8.12.16 and dst port 30000
未完待续~~~