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

上节回顾: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的案例:

ok,监控起效了~

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

3.Redis案例

前置条件:/etc/redis.conf

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

Python案例

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来运行即可

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

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

posted @ 2019-02-27 17:34 鲲逸鹏 阅读(...) 评论(...) 编辑 收藏