内容简介:最近在逛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命令行与命令
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高效程序员的45个习惯
Venkat Subramaniam、Andy Hunt / 钱安川、郑柯 / 人民邮电出版社 / 2010-01 / 35.00元
“书中‘切身感受’的内容非常有价值——通过它我们可以做到学有所思,思有所悟,悟有所行。” ——Nathaniel T. Schutta,《Ajax基础教程》作者 “此书通过常理和经验,阐述了为什么你应该在项目中使用敏捷方法。最难得的是,这些行之有效的实战经验,竟然从一本书中得到了。” ——Matthew Johnson,软件工程师 十年来,软件行业发生了翻天覆地的变化。敏捷......一起来看看 《高效程序员的45个习惯》 这本书的介绍吧!