上节回顾:https://www.cnblogs.com/dotnetcrazy/p/9986873.html

以CentOS为例:

1.环境

PS:如果不需要Golang环境,可以编译后把执行文件copy到服务器(相同环境下,编译的执行文件可以直接执行)

1.安装Golang

yum install golang -y(这一步需要root权限)

2.安装go-sniffer

go get -v -u github.com/40t/go-sniffer

3.配置环境

方法一

vi ~/.profile

确保~/go/bin/在环境变量中,eg:

PATH="$HOME/go/bin:$PATH"

然后刷新一下:source ~/.profile

方法二

echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc

然后刷新一下:source ~/.bashrc

2.案例

1.go-sniffer帮助

先简单看看帮助文档:

[dnt@localhost ~]$ 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] : eth0 : 00:15:5d:24:90:00 192.168.36.123
==================================================================================

2.MySQL案例

我是在MariaDB服务器端监控的:go-sniffer eth0 mysql(需要root权限,本地就用lo)

随便运行一个Python的案例:

监控MySQL|Redis|MongoDB的执行语句(go-sniffer)-LMLPHP

ok,监控起效了~

PS:并不是有些人说的批量执行哦~

监控MySQL|Redis|MongoDB的执行语句(go-sniffer)-LMLPHP

3.Redis案例

前置条件:/etc/redis.conf

  1. 注释掉bind=127.0.0.1
  2. 添加密码:requirepass 密码

    监控MySQL|Redis|MongoDB的执行语句(go-sniffer)-LMLPHP

Python案例

监控MySQL|Redis|MongoDB的执行语句(go-sniffer)-LMLPHP

PS:6379端口权限记得给一下:

# 开放6379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 刷新
firewall-cmd --reload

4.另一款神器soar

【推荐】SQL自动优化和改写的工具:(小米开源,之前推过)

https://github.com/lotapp/soar

不用配置什么环境,直接echo "你的sql语句" | soar来运行即可

监控MySQL|Redis|MongoDB的执行语句(go-sniffer)-LMLPHP

拓展文章:https://mp.weixin.qq.com/s/XJvRjkSab4B5zPdWBOhi1w

Web版扩展:https://github.com/lotapp/soar-web

04-25 00:01