MySQL 抓包工具mysql-sniffer

原文地址:https://github.com/Qihoo360/mysql-sniffer/blob/master/README_CN.mdmysql

 

1、簡介

MySQL Sniffer 是一個基於 MySQL 協議的抓包工具,實時抓取 MySQLServer 端或 Client 端請求,並格式化輸出。輸出內容包括訪問時間、訪問用戶、來源 IP、訪問 Database、命令耗時、返回數據行數、執行語句等。有批量抓取多個端口,後臺運行,日誌分割等多種使用方式,操做便捷,輸出友好。c++

同時也適用抓取 Atlas 端的請求,Atlas 是奇虎開源的一款基於MySQL協議的數據中間層項目,項目地址:https://github.com/Qihoo360/Atlasgit

同類型工具還有vc-mysql-sniffer,以及 tshark 的 -e mysql.query 參數來解析 MySQL 協議。github

2、使用

建議在 centos6.2 及以上編譯安裝,並用 root 運行。redis

3、安裝

安裝依賴sql

yum -y install glib2-devel libpcap-devel libnet-devel cmake
yum -y install gcc gcc-c++

軟件安裝centos

git clone https://github.com/Qihoo360/mysql-sniffer
cd mysql-sniffer
mkdir proj
cd proj
cmake ../
make
cd bin/

4、示例

4.1  實時抓取某端口信息並打印到屏幕

輸出格式爲:時間,訪問用戶,來源 IP,訪問 Database,命令耗時,返回數據行數,執行語句。tcp

mysql-sniffer -i eth0 -p 3306
2017-02-23 14:47:45	 testuser	 10.xx.xx.xx	 NULL	          0ms	          1	 select @@version_comment limit 1
2017-02-23 14:47:45	 testuser	 10.xx.xx.xx	 NULL	          0ms	          1	 select USER()
2017-02-23 14:47:48	 testuser	 10.xx.xx.xx	 NULL	          0ms	         13	 show databases
2017-02-23 14:47:51	 testuser	 10.xx.xx.xx	 NULL	          0ms	          1	 SELECT DATABASE()
2017-02-23 14:47:51	 testuser	 10.xx.xx.xx	 mysql	          0ms	          0	 use mysql
2017-02-23 14:47:53	 testuser	 10.xx.xx.xx	 mysql	          0ms	         29	 show tables
2017-02-23 14:47:54	 testuser	 10.xx.xx.xx	 mysql	          0ms	          1	 select 1
2017-02-23 14:48:01	 testuser1	 10.xx.xx.xx	 NULL	          0ms	          0	 set autocommit=1
2017-02-23 14:48:01	 testuser1	 10.xx.xx.xx	 NULL	          0ms	          0	 set autocommit=1

4.2  實時抓取某端口信息並打印到文件

-l 指定日誌輸出路徑,日誌文件將以 port.log 命名。工具

mysql-sniffer -i eth0 -p 3306 -l /tmp

4.3  實時抓取多個端口信息並打印到文件

-l 指定日誌輸出路徑,-p 指定須要抓取的端口列表逗號分割。日誌文件將以各自 port.log 命名。spa

mysql-sniffer -i eth0 -p 3306,3307,3310 -l /tmp

5、問題

  • 有lvs環境下,若是client IP是保存在在每一個鏈接階段的tcp opt字段中,那麼mysql-sniffer提取的真實的client IP而不是lvs的IP。
  • 只能抓取新建的連接,若是是以前建立的連接將獲取不到用戶名和庫名,並有必定概率丟包。

 

附贈:vc-mysql-sniffer\vc-redis-sniffer

相關文章
相關標籤/搜索