【Mysql】Anemometer-視覺化慢sql檢視

小亮520cl發表於2016-04-07
本文主要介紹使用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
官網:


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
 


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





補充:如何監控多個資料庫

  1. [root@RZ-SI1-DB-14 conf]# ll
  2. total 40
  3. -rwxr-xr-x 1 root root 15504 Oct 12 14:51 config.inc.php                   ###新版都不需要修改裡面的配置了,只需要修改下面的datasource
  4. -rwxrwxrwx 1 root root 314 Oct 12 14:54 datasource_si1.inc.php
  5. -rwxr-xr-x 1 root root 314 Oct 12 15:05 datasource_st1.inc.php         ---配置多個datasource,si1 st1 機器上分別匯入install.sql  並pt-query-digest 慢日誌進去
  6. -rwxrwxrwx 1 root root 0 Oct 13 2016 index.html
  7. -rwxrwxrwx 1 root root 15487 Oct 13 2016 sample.config.inc.php

[root@RZ-SI1-DB-14 conf]# more datasource_si1.inc.php 
<?php
$conf['datasources']['si1'] = array(
        'host'  => '10.38.96.132',
        'port'  => 3306,
        'db'    => 'slow_query_log',
        'user'  => 'xxxxxx',
        'password' => 'xxxxxx',
        'tables' => array(
                'global_query_review' => 'fact',
                'global_query_review_history' => 'dimension'
        ),
        'source_type' => 'slow_query_log'
);


[root@RZ-SI1-DB-14 conf]# more datasource_st1.inc.php 
<?php
$conf['datasources']['st1'] = array(
        'host'  => '10.38.96.128',
        'port'  => 3306,
        'db'    => 'slow_query_log',
        'user'  => 'xxxxxxx',
        'password' => 'xxxxxxxx',
        'tables' => array(
                'global_query_review' => 'fact',
                'global_query_review_history' => 'dimension'
        ),
        'source_type' => 'slow_query_log'
);







參考文章:



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

相關文章