使用Anemometer基於pt-query-digest將MySQL慢查詢視覺化

haoge0205發表於2015-12-23
本文主要介紹使用Anemometer基於pt-query-digest將MySQL慢查詢視覺化,因為網上資料相對較少,且都是英文的,遇到報錯也沒有相關的參考資料,因此寫此文。

歡迎轉載,請註明作者、出處。
作者:張正
blog:http://space.itpub.net/26355921 
QQ:176036317
如有疑問,歡迎聯絡。

準備條件:
1.MySQL開啟慢查詢


2.安裝Percona Toolkit
rpm -qa|grep percona
percona-toolkit-2.2.7-1


3.下載Anemometer
官網:https://github.com/box/Anemometer


4.準備好php相關模組(或者yum)


5.啟動apache服務
rpm -qa|grep http
httpd-2.2.3-45.el5


安裝:
1.安裝Percona Toolkit:
rpm -ivh percona-toolkit-2.2.7-1.noarch.rpm


2.將Anemometer檔案包解壓,重新命名為anemometer,並移動到/var/www/html 下(apache預設路徑)
pwd
/var/www/html/anemometer


3.安裝php相關模組:
  rpm -qa|grep php
php53-common-5.3.3-1.el5
php53-bcmath-5.3.3-1.el5
php53-mysql-5.3.3-1.el5
php53-dba-5.3.3-1.el5
php53-cli-5.3.3-1.el5
php53-gd-5.3.3-1.el5
php53-5.3.3-1.el5
php53-pdo-5.3.3-1.el5

NOTE:
PHP版本要大於5.3,否則就報錯,如:
Anemometer requires PHP 5.3 or newer. You have 5.1.6
除此之外還需要:bcmath
rpm -qa|grep bcmath
php53-bcmath-5.3.3-1.el5


4.執行setup 指令碼,建立使用者:
[root@/var/www/html/anemometer]mysql -uroot -pxxx < install.sql
[root@/var/www/html/anemometer]mysql -uroot -pxxx
mysql > grant all on slow_query_log.* to 'anemometer'@'%' identified by 'test';
mysql > grant select on *.* to  'anemometer'@'%';
mysql > grant all on slow_query_log.* to 'anemometer'@'localhost';
mysql > grant select on *.* to  'anemometer'@'localhost';




5.將慢查詢日誌通過pt-query-digest分析後存入資料庫中:
pt 版本小於2.2版本的語句:
pt-query-digest --user=anemometer --password=test \
                  --review h=db.example.com,D=slow_query_log,t=global_query_review \
                  --review-history h=db.example.com,D=slow_query_log,t=global_query_review_history \
                  --no-report --limit=0% \ 
                  --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \ 
                  /root/test/localhost-slow.log


pt 版本大於2.2版本的語句:
pt-query-digest --user=anemometer --password=test --review h=hd-119-186,D=slow_query_log,t=global_query_review --history h=hd-119-186,D=slow_query_log,t=global_query_review_history --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /root/test/localhost-slow.log


執行這個操作後,將會把慢日誌分析後存入mysql的slow_query_log資料庫。


NOTE:
記得保證相應 '使用者'@'主機' 的訪問許可權




6.修改可視介面的配置資訊:
cd /var/www/html/anemometer/conf
cp sample.config.inc.php config.inc.php
vi config.inc.php
 
以及:
 

NOTE:
主機名一定要修改正確,不能保留為localhost,否則會導致最終介面無法訪問。






7.最終本地通過IP訪問:
http://192.168.44.130/anemometer
 


查詢後可獲得慢查詢日誌的結果:
 








參考文章:
https://github.com/box/Anemometer


https://rtcamp.com/tutorials/mysql/slow-query-log-anemometer/





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-1878554/,如需轉載,請註明出處,否則將追究法律責任。

相關文章