使用Anemometer分析MySQL慢查询记录

sunny MySQL1 17,28011字数 1845阅读6分9秒阅读模式

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

下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer。文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/

在使用之前需要安装percona的toolkit工具,anemometer提供web界面。文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/

anemometer介绍参见:https://github.com/box/Anemometer/wiki文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/

1. 安装

# 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';"

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

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;
},

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

这样就可以通过my.ttlsa.com/anemometer来访问查看慢查询了。文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/

参考文档:文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/

https://www.box.com/blog/optimizing-mysql-performance-at-scale-with-anemometer-2/文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/

http://isadba.com/?p=655文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/ 文章源自运维生存时间-https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
sunny
  • 本文由 发表于 16/10/2015 13:46:01
  • 转载请务必保留本文链接:https://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/
评论  1  访客  1
    • dana
      dana 0

      对于pt-query-digest 这个命令的一个参数 –review-history,实际上应该是–history,你们手抖了一下多打了一个review,哈哈

    评论已关闭!