内容简介:最近在逛Capture mysql,redis,http,mongodb etc protocol... 抓包截取项目中的数据库请求并解析成相应的语句,如mysql协议会解析为sql语句,便于 调试。 不要修改代码,直接嗅探项目中的数据请求。参照官网 来安装。
最近在逛 GitHub
的时候发现一个有趣的 go
项目 go-sniffer
,是用来在开发环境监控 mysql
和 redis
执行命令的。
Capture mysql,redis,http,mongodb etc protocol... 抓包截取项目中的数据库请求并解析成相应的语句,如 mysql 协议会解析为 sql 语句,便于 调试。 不要修改代码,直接嗅探项目中的数据请求。
一、 安装 GO
环境
参照官网 来安装。
下面以 Ubuntu
为例来介绍一下。
1. 下载 Go
1.11.2压缩包
下载地址: dl.google.com/go/go1.11.2…
2. 解约文件
将文件解压到 /usr/local
文件夹下面, 如果不是 root
用户,需要在解压命令前面加上 sodu
tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz 复制代码
3. 创建 GOPATH
目录
GOPATH
是存放 Go
源代码、包、生成的二进制文件的目录,位置一般放在 $HMOE/go
下,我们执行 mkdir ~/go
命令来创建这个目录。
接着在 ~/go
目录下面分别创建 src
目录和 bin
目录, bin
目录也可以不创建,它会在执行 go install
之后自动创建。
现在我们的目录结构如下:
go ├── bin └── src 复制代码
4. 添加环境变量
我们需要把 /usr/local/go/bin
和 ~/go/bin
这两个目录加入环境变量中,来方便我们执行命令。
编辑 ~/.profile
文件,在文件的最后一行加上:
PATH="$HOME/go/bin:/usr/local/go/bin:$PATH" 复制代码
保存退出。执行 source ~/.profile
来更新环境变量。
执行 go version
,可以看到终端输出: go version go1.11.2 linux/amd64
,代表 go
安装成功。
二、 使用 go-sniffer
1. 安装 libpcap-dev
Ubuntu
环境下需要先安装 libpcap-dev
, 执行如下命令来安装:
sudo apt-get install libpcap-dev 复制代码
2. 安装 go-sniffer
使用 go get
来下载
go get -v -u github.com/40t/go-sniffer 复制代码
由于需要从 GitHub
来下载,所以速度会有点慢,需要耐心等待一会
下载过程:
github.com/40t/go-sniffer (download) github.com/google/gopacket (download) github.com/google/gopacket github.com/40t/go-sniffer/plugSrc/http/build github.com/40t/go-sniffer/plugSrc/mongodb/build/internal/json github.com/40t/go-sniffer/plugSrc/mongodb/build/bson github.com/40t/go-sniffer/plugSrc/mongodb/build github.com/40t/go-sniffer/plugSrc/mysql/build github.com/40t/go-sniffer/plugSrc/redis/build github.com/google/gopacket/layers github.com/google/gopacket/pcap github.com/google/gopacket/tcpassembly github.com/google/gopacket/tcpassembly/tcpreader github.com/40t/go-sniffer/core github.com/40t/go-sniffer 复制代码
如果刚才已经把 ~/go/bin
加入环境变量,这个时候可以直接执行 go-sniffer
来验证一下。
当然我们也可以把 go-sniffer
拷贝到 /usr/local/bin
,执行如下命令:
sudo cp -rf $(go env GOPATH)/bin/go-sniffer /usr/local/bin 复制代码
3. 用法
执行 go-sniffer
可以看到输出了我们的设备名称,监听的时候需要这个设备名称
vagrant@homestead:~$ go-sniffer
==================================================================================
[Usage]
go-sniffer [device] [plug] [plug's params(optional)]
[exp]
go-sniffer en0 redis Capture redis packet
go-sniffer en0 mysql -p 3306 Capture mysql packet
go-sniffer --[commend]
--help "this page"
--env "environment variable"
--list "Plug-in list"
--ver "version"
--dev "device"
[exp]
go-sniffer --list "show all plug-in"
==================================================================================
[device] : lo : 127.0.0.1
[device] : enp0s3 : 08:00:27:19:2c:a4 10.0.2.15
[device] : enp0s8 : 08:00:27:1b:32:1c 192.168.10.10
==================================================================================
复制代码
在这里我需要监听本机的 mysql
请求,就是 127.0.0.1
,也就是 lo
这个设备
那就使用如下命令来启动:
sudo go-sniffer lo mysql 复制代码
启动之后,就可以监控 MySQL
的请求了
我们随便来执行一个 PHP
脚本,就可以看到输出了我们脚本执行的 SQL
…… 2018-11-29 04:11:04| ser -> cli |【Ok】 Effect Row:0 2018-11-29 04:11:04| cli -> ser |【Pretreatment】select * from `users` where `appid` = ? limit 1 2018-11-29 04:11:04| cli -> ser |Stm id[3]: 'select * from `users` where `appid` = ? limit 1'; set @p0 = '4s6rL2VIsTp6hIaGFvf9iZzk9uIkvLlIVk'; Execute stm id[3]: using @p0; Drop stm id[3]; …… 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 监控 redis 执行命令
- mongodb监控工具mongostat的使用及命令详解
- SMProxy 1.2.9 发布,新增状态命令监控面板功能
- CentOS Linux 下使用 iotop 命令监控磁盘 I/O 活动
- composer更新命令及常用命令
- Linux命令行与命令
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Amazon Web Services
James Murty / O'Reilly Media / 2008-3-25 / USD 49.99
Building on the success of its storefront and fulfillment services, Amazon now allows businesses to "rent" computing power, data storage and bandwidth on its vast network platform. This book demonstra......一起来看看 《Programming Amazon Web Services》 这本书的介绍吧!