当前位置: 首页 > 工具软件 > Anemometer > 使用案例 >

anemometer mysql_使用Anemometer分析MySQL慢查询记录

邹涵畅
2023-12-01

数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观。

下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer。

在使用之前需要安装percona的toolkit工具,anemometer提供web界面。

anemometer介绍参见:https://github.com/box/Anemometer/wiki

1. 安装

# cd /data/www/my.ttlsa.com

# git clone https://github.com/box/Anemometer.git anemometer

# cd anemometer

1

2

3

# cd /data/www/my.ttlsa.com

# git clone https://github.com/box/Anemometer.git anemometer

# cd anemometer

2. 创建表和用户名

mysql < install.sql

mysql -e "grant ALL ON slow_query_log.* to 'anemometer'@'localhost' IDENTIFIED BY 'my.ttlsa.com';"

mysql -e "grant SELECT ON *.* to 'anemometer'@'localhost' IDENTIFIED BY 'my.ttlsa.com';"

1

2

3

mysql

mysql-e"grant ALL ON slow_query_log.* to 'anemometer'@'localhost' IDENTIFIED BY 'my.ttlsa.com';"

mysql-e"grant SELECT ON *.* to 'anemometer'@'localhost' IDENTIFIED BY 'my.ttlsa.com';"

3. 分析MySQL慢日志

# pt-query-digest --user=anemometer --password=superSecurePass \

--review D=slow_query_log,t=global_query_review \

--review-history D=slow_query_log,t=global_query_review_history \

--no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /data/log/mysql/slow.log

1

2

3

4

# pt-query-digest --user=anemometer --password=superSecurePass \

--reviewD=slow_query_log,t=global_query_review\

--review-historyD=slow_query_log,t=global_query_review_history\

--no-report--limit=0%--filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\""/data/log/mysql/slow.log

4. 配置anemometer

# cp conf/sample.config.inc.php conf/config.inc.php

# vi conf/config.inc.php

$conf['datasources']['localhost'] = array(

'host' => 'localhost',

'port' => 3306,

'db' => 'slow_query_log',

'user' => 'anemometer',

'password' => 'my.ttlsa.com',

'tables' => array(

'global_query_review' => 'fact',

'global_query_review_history' => 'dimension'

),

'source_type' => 'slow_query_log'

);

$conf['plugins'] = array(

'visual_explain' => '/usr/bin/pt-visual-explain',

'query_advisor' => '/usr/bin/pt-query-advisor',

#... other lines

$conn['user'] = 'anemometer';

$conn['password'] = 'my.ttlsa.com';

return $conn;

},

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

# cp conf/sample.config.inc.php conf/config.inc.php

# vi conf/config.inc.php

$conf['datasources']['localhost']=array(

'host'=>'localhost',

'port'=>3306,

'db'=>'slow_query_log',

'user'=>'anemometer',

'password'=>'my.ttlsa.com',

'tables'=>array(

'global_query_review'=>'fact',

'global_query_review_history'=>'dimension'

),

'source_type'=>'slow_query_log'

);

$conf['plugins']=array(

'visual_explain'=>'/usr/bin/pt-visual-explain',

'query_advisor'=>'/usr/bin/pt-query-advisor',

#... other lines

$conn['user']='anemometer';

$conn['password']='my.ttlsa.com';

return$conn;

},

5. 自动化处理

# vi /etc/logrotate.d/mysql

postrotate

pt-query-digest --user=anemometer --password=superSecurePass \

--review D=slow_query_log,t=global_query_review \

--review-history D=slow_query_log,t=global_query_review_history \

--no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /data/log/mysql/slow.log.1

endscript

1

2

3

4

5

6

7

# vi /etc/logrotate.d/mysql

postrotate

pt-query-digest--user=anemometer--password=superSecurePass\

--reviewD=slow_query_log,t=global_query_review\

--review-historyD=slow_query_log,t=global_query_review_history\

--no-report--limit=0%--filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\""/data/log/mysql/slow.log.1

endscript

这样就可以通过my.ttlsa.com/anemometer来访问查看慢查询了。

参考文档:

https://www.box.com/blog/optimizing-mysql-performance-at-scale-with-anemometer-2/

http://isadba.com/?p=655

 类似资料: