我们有时候想抓取到机器的SQL,但是又不想开启审计,就可以借助go-sniffer 来抓取SQL。
工具通过解析TCP数据包获取到执行的SQL。
工具GitHub地址:
https://github.com/40t/go-sniffer
我们就一起来看一下怎样使用。
安装
下载压缩包,传到机器上
wget https://github.com/40t/go-sniffer/archive/refs/heads/master.zip
unzip go-sniffer-master.zip
mv go-sniffer-master go-sniffer
安装依赖:
yum -y install libpcap-devel go
初始化Go模块:
cd go-sniffer
go mod init go-sniffer
下载依赖:
go mod tidy
编译:
go build
抓取MySQL的数据包
执行
./go-sniffer eth0 mysql -p 3306
在另外一个窗口,运行了我们前面写的一篇Go语言操作MySQL中的程序。
结果如下图:
能获取到所有执行的SQL。
小编也试了下,服务端和客户端都能抓取,内容一样。
抓取Redis的数据包
执行:
redis-cli -h 10.254.90.148 -p 9001 -a xxx
其他窗口执行set命令,抓取的结果如下图:
同样也能抓取到所执行的Redis命令。
抓取MongoDB的数据包
执行:
./go-sniffer eth0 mongodb -p 27001
发现只能获取建立连接和断开连接时的数据包:
执行查询命令的时候,抓不到数据包。
使用的MongoDB版本是6.0.10,有没有懂得大佬知道是什么原因。
好的,关于go-sniffer就介绍到这里。
研究技术的小编先退下,卖课的小编上场。
欢迎订购小编在慕课网制作的DBA体系课(详细介绍可以点击跳转)。
课程内容大致比例:
MySQL(60%)
Redis(10%)
Go开发DB平台(10%)
Linux基础(5%)
Shell(5%)
MongoDB(5%)
Clickhouse(3%)
ES(2%)
昨天,慕课网平台的工作人员跟我说,会在下个月开启双十一折扣活动。从今天开始到双十一活动结束,这期间购买DBA体系课的,都会保价双十一活动。
也就是这期间,你如果买的比双十一活动期间的价格贵了,到时候可以去后台申请退还差价。
课程地址:
https://class.imooc.com/sale/dba
售前售后问题,可以加我微信:mating3306