前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次使用tshark抓包ES分析请求串来源

记一次使用tshark抓包ES分析请求串来源

原创
作者头像
词不悉心
发布2024-06-03 10:21:25
1110
发布2024-06-03 10:21:25
举报
文章被收录于专栏:指标建设指标建设

背景

现网ES数据有一个字段被更新,检索git代码库以及服务日志,都没有查找到更新的来源,因此使用tshark对ES进行抓包,分析更新请求的来源

tshark 安装和使用

安装tshark

shark是wireshark的一个工具,可以通过yum直接安装wireshark

代码语言:shell
复制
yum install -y wireshark

查看版本

代码语言:shell
复制
tshark -v

命令参数

代码语言:shell
复制
 tshark -help

以下仅列举部分常用参数,详细参数说明请阅读官方文档

捕获接口参数

参数

参数说明

-i <interface>

接口或者网卡编号

-f <capture filter>

使用libpcap过滤表达式进行包过滤

-s <snaplen>

packet snapshot length (def: appropriate maximum)

-p

don't capture in promiscuous mode

-I

capture in monitor mode, if available

-B <buffer size>

size of kernel buffer (def: 2MB)

-y <link type>

link layer type (def: first appropriate)

--time-stamp-type <type>

timestamp method for interface

-D

print list of interfaces and exit

-L

print list of link-layer types of iface and exit

--list-time-stamp-types

print list of timestamp types for iface and exit

捕获终止条件控制参数

参数

参数说明

-c <packet count>

设置抓取数据包的数量,当到达设置的包数,则停止抓取,默认不限,持续捕获

-a <autostop cond.> ...

设置tshark抓包停止的条件,如: -a duration:NUM - 表示抓包 NUM 秒后结束; -a filesize:NUM -表示抓包 NUM KB 后结束; -a files:NUM - 表示抓包在写满 NUM 个文件后结束,一般跟 -w 参数一起使用;

捕获输出条件控制参数

参数

参数说明

-b <ringbuffer opt.> ...

设置环形缓冲区(ring-buffer)参数。ring-buffer的文件名由-w参数设置 -b duration:NUM - 表示每 NUM 秒写下一个缓冲区文件 -b interval:NUM - 创建时间间隔 NUM 秒 -b filesize:NUM - 表示每达到 NUM kB 写下一个缓冲区文件 -b files:NUM - 表示设置 NUM 个缓存区文件循环写入,替换最早的文件,如不设定,tshark会将一直写入新文件,直到磁盘写满为止。

读取文件参数

参数

参数说明

r <infile>

设置需要读取的文件名

分析处理参数

参数

参数说明

-Y <display filter>

设置展示过滤表达式(display filter),只显示满足过滤表达式的数据包内容

-n

禁止所有地址名字解析(默认为允许所有)

-N <name resolve flags>

启用某一层的地址名字解析。“m”代表MAC层,“n”代表网络层,“t”代表传输层,“C”代表当前异步DNS查找。如果-n和-N参数同时存在,-n将被忽略。如果-n和-N参数都不写,则默认打开所有地址名字解析。

-d <layer_type>==<selector>,<decode_as_protocol> ...

将指定的数据按有关协议解包输出,如要将tcp 8888端口的流量按http解包,应该写为“-d tcp.port==8888,http”;tshark -d. 可以列出所有支持的有效选择器。

-H <hosts file>

read a list of entries from a hosts file, which will then be written to a capture file. (Implies -W n)

输出参数

参数

参数说明

-w <outfile|->

设置未处理的raw数据输出文件。如果是将解码后的结果内容输出到文件,需要用重定向">"的方式,而不是-w参数。

-C <config profile>

启动时使用指定的配置文件

-F <output file type>

设置输出文件格式类型, 默认为pcapng格式 "-F"留空则列出所有的文件类型

-V

设置将解码结果的细节输出,否则解码结果仅显示一个数据包一行的summary。

-O <protocols>

仅显示以下协议的详细信息,逗号分割

-P

每写入一个文件后进行包情况汇总

-S <separator>

数据包之间的行分割符

-x

输出中增加16进制和ascii字符信息(报文按字节显示)

-T pdml|ps|psml|json|jsonraw|ek|tabs|text|fields|?

设置解码结果输出的格式,包括text,ps,psml,pdml和fields,默认为text。

-j <protocolfilter>

当 -T ek|pdml|json 选项设置时进行顶层协议过滤, (例: “http tcp”, 过滤展开的所有字节点)

-J <protocolfilter>

当 -T ek|pdml|json 选项设置时进行顶层协议过滤, (例: “http tcp”, 过滤展开的所有字节点)

-e <field>

当 -T fields 设置时打印字段 (如tcp.port,_ws.col.Info) 此选项可以多个用于打印多个字段

开始抓包

先抓取es http 端口

代码语言:shell
复制
 tshark  -i any -f 'tcp port 9400' -n -a duration:600 -d "tcp.port==9400,http" -Y "http.request or http.response" -T fields -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri" -e "http.file_data"

得到下列包

在抓取es tcp 端口

代码语言:shell
复制
 tshark -i any -f 'tcp port 9301' -Y "tcp" -T fields -e data -E separator=':' -E quote=d -E occurrence=f | xxd -r -p

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • tshark 安装和使用
    • 安装tshark
      • 查看版本
        • 命令参数
          • 捕获接口参数
          • 捕获终止条件控制参数
          • 捕获输出条件控制参数
          • 读取文件参数
          • 分析处理参数
          • 输出参数
        • 开始抓包
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档