ติดตาม MySQL Queries ด้วย mysqlsniffer บน Ubuntu
คุณมีเซิร์ฟเวอร์ฐานข้อมูลการผลิตและคุณไม่สามารถเปิดใช้งานการบันทึกคิวรีได้ ... ดังนั้นคุณจะเห็นคิวรีที่ถูกดำเนินการกับฐานข้อมูลได้อย่างไร?
คำตอบ: ใช้เครือข่ายดมกลิ่นดัดแปลงเพื่อแยกออกแพ็กเก็ต MySQL และถอดรหัสพวกเขา คุณจะต้องรวบรวมข้อมูลเล็กน้อย แต่มันจะคุ้มค่า โปรดทราบว่าการดำเนินการนี้จะใช้ไม่ได้กับการเชื่อมต่อในระบบ แต่คุณสามารถลองได้.
ก่อนอื่นคุณต้องติดตั้ง libpcap-dev ซึ่งเป็นไลบรารี่การพัฒนาที่อนุญาตให้แอปพลิเคชันดมกลิ่นแพ็คเก็ตเครือข่าย.
sudo apt-get install libpcap-dev
ตอนนี้ให้ทำไดเรกทอรีดาวน์โหลดซอร์สโค้ดและรวบรวม
mkdir mysqlsniffer
cd mysqlsniffer
wget hackmysql.com/code/mysqlsniffer.tgz
tar xvfz mysqlsniffer.tgz
gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
ณ จุดนี้เรามีไฟล์ปฏิบัติการใหม่ชื่อ mysqlsniffer ในไดเรกทอรีต้นทางของเรา คุณสามารถคัดลอกทุกที่ที่คุณต้องการ (ที่ไหนสักแห่งในเส้นทางจะเป็นประโยชน์)
ในการเรียกใช้ mysqlsniffer คุณจะต้องระบุอินเทอร์เฟซเครือข่ายที่ MySQL รับฟังอยู่ สำหรับฉันมันคือ eth0.
sudo / path / to / mysqlsniffer eth0
สิ่งต่างๆมากมายเริ่มต้นด้วย ... ลองกรองออกอีกหน่อยเพื่อเราจะได้รับข้อความค้นหาไม่ใช่ข้อมูลส่วนเกินทั้งหมด.
$ sudo / path / to / mysqlsniffer -no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622> เซิร์ฟเวอร์: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622> เซิร์ฟเวอร์: COM_QUERY: SET SESSION sql_mode =”
192.168.73.1.2622> เซิร์ฟเวอร์: COM_QUERY: SET NAMES utf8
192.168.73.1.1636> เซิร์ฟเวอร์: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636> เซิร์ฟเวอร์: COM_QUERY: แสดงคอลัมน์เต็มรูปแบบจาก 'db2842_howto'. 'wp_users'
อ่าตอนนี้เรามี ... ทุกข้อสอบถามข้อมูลโดยไม่ต้องรีสตาร์ท MySQL.
นี่คือตัวเลือกแบบเต็มสำหรับคำสั่ง:
การใช้งาน: mysqlsniffer [OPTIONS] INTERFACE
ตัวเลือก:
-พอร์ต N ฟัง MySQL บนหมายเลขพอร์ต N (ค่าเริ่มต้น 3306)
-แสดงข้อมูลแพ็คเก็ตพิเศษ
-tcp-ctrl แสดงแพ็กเก็ตควบคุม TCP (SYN, FIN, RST, ACK)
-net-hdrs แสดงค่า IP และ TCP header ที่สำคัญ
-no-mysql-hdrs อย่าแสดงส่วนหัว MySQL (ID แพ็กเก็ตและความยาว)
-แสดงสถานะ
-เซิร์ฟเวอร์ MySQL v40 เป็นรุ่น 4.0
-ดัมพ์ดัมพ์แพ็กเก็ตทั้งหมดเป็นเลขฐานสิบหก
-ช่วยพิมพ์สิ่งนี้
ซอร์สโค้ดต้นฉบับและข้อมูลเพิ่มเติมที่:
http://hackmysql.com/mysqlsniffer
หากคุณกำลังทำงานบนเซิร์ฟเวอร์การพัฒนามันจะง่ายกว่าที่จะเปิดการบันทึกแบบสอบถาม.