MySQL优化之慢日志分析(Anemometer+Pt-query-digest)

介绍
使用pt-query-digest搜集慢查询日志。将数据存储在两张表中:global_query_review 和 global_query_review_history。然后使用anemometer将pt-query-digest 搜集的数据以web形式展现出来,方便查询分析。

1、准备条件:
a.LNMP平台
b.MySQL开启慢查询
   slow_query_log=on      #开启数据库的慢日志
   long_query_time=0.1    #时间超过0.1s的SQL记录日志中
   log-slow-queries=/usr/local/mysql/data/mysql_slow.log  #慢日志存放路径


2.安装Percona Toolkit
下载

wget https://www.percona.com/downloads/percona-toolkit/2.2.16/tarball/percona-toolkit-2.2.16.tar.gz

tar xzvf percona-toolkit-2.2.16.tar.gz
cd percona-toolkit-2.2.16
perl Makefile.PL
make
make install


3.安装配置Anemometer
a.下载: https://github.com/box/Anemometer
将Anemometer文件包解压,重命名为anemometer,并移动到/usr/local/nginx/html/Anemometer 下(nginx默认路径)
执行setup 脚本,创建用户:
[root@/anemometer]mysql -uroot -pxxx < install.sql
[root@/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';

b.将慢查询日志通过pt-query-digest分析后存入数据库中:

pt-query-digest --user=anemometer --password=test --review h=154.1.1.36,D=slow_query_log,t=global_query_review --history h=154.1.1.36,D=slow_query_log,t=global_query_review_history --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /usr/local/mysql/data/web00-slow.log

c.修改可视界面的配置信息:
cd /usr/local/nginx/html/anemometer/conf
cp sample.config.inc.php config.inc.php
vi config.inc.php

$conf['datasources']['154.1.1.36'] = array(
        'host'  => '154.1.1.36',
        'port'  => 3306,
        'db'    => 'slow_query_log',
        'user'  => 'anemometer',
        'password' => 'test',
        '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'] = 'test';

                return $conn;
},

注: 更新PHP的 timezone:/usr/local/php/etc/php.ini   timezone =Asia/Shanghai


4.最终本地通过IP访问:
http://154.1.1.36/anemometer

 

MySQL优化之慢日志分析(Anemometer+Pt-query-digest)_第1张图片


b.点击特定checksum值进入的页面如下:

MySQL优化之慢日志分析(Anemometer+Pt-query-digest)_第2张图片

后续增加更多图片……

你可能感兴趣的:(mysql,优化,日志分析)