数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观。
下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer。
在使用之前需要安装percona的toolkit工具,anemometer提供web界面。
anemometer介绍参见:https://github.com/box/Anemometer/wiki
1. 安装
1
2
3
|
# cd /data/www/my.ttlsa.com
# git clone https://github.com/box/Anemometer.git anemometer
# cd anemometer
|
2. 创建表和用户名
1
2
3
|
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';"
|
3. 分析MySQL慢日志
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
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. 自动化处理
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