pt-stall的主要功能是收集OS和MySQL出現問題時的診斷信息,包括:
1.CPU、IO、內存、磁盤、網絡等信息。在操作系統級別;
2.MySQL級行鎖等待,會話連接,主從副本,狀態參數等信息。
而且pt-stall是壹個Shell腳本,對不懂perl的人比較友好。腳本中的監控邏輯和監控命令也可以借鑒來構建自己的監控系統。
第三,使用
然後我們來看看如何使用這個工具。
pt-stall通常將MySQL作為後臺服務進行監控並等待觸發條件,在觸發條件發生時收集相關診斷數據。
與觸發條件相關的參數如下:
功能:
默認為status,表示監控SHOW GLOBAL STATUS的輸出;
也可以設置為processlist,即監控show processlist的輸出;
變量:
默認值為Threads_running,代表監控參數,具體監控項目根據上面的監控輸出指定;
閾值:
默認值為25,表示監控閾值。如果監控參數超過閾值,將滿足觸發條件。
當監控參數的值不是數字時,需要和匹配參數壹起使用,比如processlist的state列;
周期:
默認值為5,這意味著只有連續五次滿足觸發條件時,才會觸發收集。
連接參數:主機、密碼、端口、套接字。
其他重要參數:
Iterations:該參數指定pt-stalk在多次觸發收集後退出,默認情況下將壹直運行。
運行時:觸發收集後,該參數指定數據將被收集多長時間。默認值為30秒。
Sleep:該參數指定在觸發收集後,sleep將繼續監視多長時間。默認值為300秒。
間隔:指定狀態參數的檢查頻率,決定是否需要觸發采集。默認值為1秒。
Dest:監控數據的存儲路徑,默認為/var/lib/pt-stall。
保留時間:監控數據保留時間,默認為30天。
Daemonize:在後臺服務中運行,默認不開啟。
Log:後臺運行日誌,默認為/var/log/pt-stall.log。
收集:在觸發發生時收集診斷數據,默認情況下打開。
收集GDB:收集gdb堆棧跟蹤需要gdb工具。
收集跟蹤數據需要跟蹤工具。
收集-tcpdump:收集tcpdump數據需要tcpdump工具。