MySQL Sniffer 是一個基於 MySQL 協議的抓包工具,實時抓取 MySQLServer 端的請求,並格式化輸出。輸出內容包訪問括時間、訪問用戶、來源 IP、訪問 Database、命令耗時、返回數據行數、執行語句等。有批量抓取多個埠,後台運行,日誌分割等多種使用方式,操作便捷,輸出友好。
同時也適用抓取 Atlas 端的請求,Atlas 是奇虎開源的一款基於MySQL協議的數據中間層項目,項目地址:
同類型工具還有vc-mysql-sniffer,以及 tshark 的 -e mysql.query 參數來解析 MySQL 協議。
如何打開使用?
下載安裝就不多說了,GitHub 地址:(點擊文章末尾 「閱讀原文」 跳轉)。
建議在 CentOS6.2 及以上編譯安裝,並用 root 運行。
工具參數:
示例
1. 實時抓取某埠信息並列印到屏幕
輸出格式為:時間,訪問用戶,來源 IP,訪問 Database,命令耗時,返回數據行數,執行語句。
2. 實時抓取某埠信息並列印到文件
-l 指定日誌輸出路徑,日誌文件將以 port.log 命名。
3. 實時抓取多個埠信息並列印到文件
-l 指定日誌輸出路徑,-p 指定需要抓取的埠列表逗號分割。日誌文件將以各自 port.log 命名。
4. 實時抓取多個連續遞增的埠並列印到文件
-l 指定日誌輸出路徑,-r 指定埠範圍,日誌文件將以各自 port.log 命名。
5. 實時抓取多個連續遞增的埠同時過濾某幾個埠,並列印到文件
-l 指定日誌輸出路徑,-r 指定埠範圍, -w 指定過濾埠列表逗號分割,日誌文件將以各自 port.log 命名。
6. 抓取某個埠以 daemon 模式運行,並列印到文件
-l 指定日誌輸出路徑,-p 指定埠, -n 指定數據包個數,日誌文件將以各自 port.log 命名。
7. 抓取某個埠並截取指定長度的 SQL
-p 指定埠, -t 指定SQL長度,將輸出 SQL的前n個字元(適用於 SQL 過長的場景)。
備註:MySQL Sniffer 更多使用方式以及 Atlas 等其他技術請關注我們後續的相關分享。
作者介紹
360HULK私有雲團隊,奇虎360公司內部專屬私有雲平台的締造者。團隊深耕於雲計算、資料庫、大數據、監控等技術領域。
QCon北京2017將於4月16日~18日在北京·國家會議中心舉行。