天兔(LEPUS)監控系統慢查詢分析平臺配置文件手冊(V3.0)
該章節將向大家闡述如何在生產資料庫伺服器上部署慢查詢分析平臺,並實現慢查詢自動推送功能,慢查詢自動推送是指將系統收集的慢查詢Top10資料定時通過郵件形式推送給開發或DBA進行優化。
Lepus的慢查詢分析平臺是獨立於監控系統的模組,該功能需要使用percona-toolkit (http://www.percona.com/software/percona-toolkit)工具來採集和記錄慢查詢日誌,並且需要部署一個我們提供的shell指令碼來進行資料採集。該指令碼會自動開啟您資料庫的慢查詢日誌,並對慢查詢日誌進行按小時的切割,並收集慢查詢日誌的資料到監控機資料庫。隨後您通過Lepus系統就可以分析慢查詢了。
安裝步驟如下所示:
1) 安裝percona-toolkit:
# yum -y install perl-IO-Socket-SSL
# yum -y install perl-DBI
# yum -y install perl-DBD-MySQL
# rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm
2)從監控機拷貝lepus提供的慢查詢分析指令碼到MySQL端
在MySQL端的對分析指令碼授權
#chmod +x /usr/local/sbin/lepus_slowquery.sh
編輯檔案修改配置,在這裡您需要指定Lepus監控機資料庫的地址,本地MySQL地址,以及儲存慢查詢的路徑和慢查詢時間,另外還需要配置一個Lepus主機的server_id.
#vim /usr/local/sbin/lepus_slowquery.sh
#config lepus database server
lepus_db_host=""
lepus_db_port=
lepus_db_user=" "
lepus_db_password=""
lepus_db_database=" "
#config mysql server
mysql_client="/data/mysql/bin/mysql"
mysql_host="127.0.0.1"
mysql_port=3306
mysql_user="root"
mysql_password=" "
#config slowqury
slowquery_dir="/data/mysql/slowlog/"
slowquery_long_time=0.5
pt_query_digest="/usr/bin/pt-query-digest"
#config server_id
lepus_server_id=131
注意:lepus_server_id該值需要從系統中獲取。進入MySQL伺服器配置,在部署指令碼的主機前查詢到當前ID即為主機的server_id.
lepus_server_id必須和MySQL伺服器配置裡的對應伺服器ID一一對應,否則您可能將無法查詢到該主機的慢查詢。
配置完成後儲存,並加入計劃任務。因為慢查詢做了按小時的切割,建議計劃任務時間間隔在1小時之內。
*/5 * * * * sh /usr/local/sbin/lepus_slowquery.sh > /dev/null 2>&1
加入計劃任務後您可以手動執行下指令碼,執行完後就可以看到生成的慢查詢日誌
-rw-rw---- 1 mysql mysql 382 Aug 15 13:38 slowquery_2014081513.log
3)開啟慢查詢分析
在MySQL伺服器管理裡面電擊右側的編輯按鈕,進入伺服器編輯介面。
配置slowquery為開啟狀態
配置完成後,稍等片刻,即可在慢查詢分析平臺檢視該庫的慢查詢日誌。
4)開啟慢查詢自動推送
慢查詢自動推送是指定時將系統收集到的慢查詢TOP資料定時推送給相應開發人員進行優化。無需在每臺數據庫上部署指令碼。
MySQL慢查詢自動推送通過計劃任務完成。如果需要推送,則需要在監控機部署如下計劃任務。
注意:www.xxx.com請替換成您自己的lepus監控WEB訪問地址,以下只是做一個示範,請勿照抄。
計劃任務部署完成後,則會按照計劃任務配置的時間將慢查詢推送給對應人員。慢查詢推送的郵件人員需要在MySQL主機配置裡面設定即可,郵箱留空則該資料庫主機不會發送慢查詢推送。
部署完成後,在計劃任務的時間到達時間,您就可以看到推送的慢查詢郵件了。
郵件格式和內容如下所示: