pt-query-digest虽然功能强大, 但毕竟没有web界面显示的直观,我们可以借助Anemometer作为pt-query-digest执行结果的显示端,Anemometer是专门为mysql的慢查询开发的一款开源软件,地址在http://www.oschina.net/p/anemometer
一、安装LAMP环境
1,安装
yum install httpd php *bcmath* *mysqli* -y
2,查看
[[email protected] ~]# rpm -qa|grep httphttpd-tools-2.4.6-40.el7.centos.x86_64httpd-2.4.6-40.el7.centos.x86_64
[[email protected] ~]# rpm -qa|grep phpphp-bcmath-5.4.16-36.el7_1.x86_64php-cli-5.4.16-36.el7_1.x86_64php-mysql-5.4.16-36.el7_1.x86_64php-pear-MDB2-Driver-mysqli-1.5.0-0.8.b4.el7.noarchphp-common-5.4.16-36.el7_1.x86_64php-pdo-5.4.16-36.el7_1.x86_64php-process-5.4.16-36.el7_1.x86_64php-pear-MDB2-2.5.0-0.9.b5.el7.noarchphp-5.4.16-36.el7_1.x86_64php-xml-5.4.16-36.el7_1.x86_64php-pear-1.9.4-21.el7.noarch
[[email protected] ~]# rpm -qa|grep bcmathphp-bcmath-5.4.16-36.el7_1.x86_64
4,修改httpd中的ServerName
vi /etc/httpd/conf/httpd.conf
二、Anemometer配置
1,执行SQL脚本
mysql -uroot -p123456 < /var/www/html/anemometer/install.sql
2,添加使用anemometer的权限
grant all on slow_query_log.* to 'anemometer'@'%' identified by '123456';grant select on *.* to 'anemometer'@'%' identified by '123456';给与'on *.* t'的权限是因为做执行计划时,每个表可能在不同的库,需要use database;
3,设置配置文件,修改 ip,host,port,db,user,password
cd /var/www/html/anemometer/conf
cp sample.config.inc.php config.inc.php
vi config.inc.php
4,启动
servier httpd start
5,访问
http://192.168.44.130/anemometer
三、遇到的问题
1,如果界面空白,查看日志
vi /var/log/httpd/error_log
如果显示如下错误,请关闭selinux: setenforce 0(最好在配置文件中设置,以免重启后问题重现)
2, 界面显示没有global_query_review表
因为我们在配置文件定义的slow_query_log库中没有这个表,画面的任何数据都是从表里取得的,而格式也是和pt-query-digest执行的结果相同,所以想要看到数据,需要先执行pt-query-digest并将结果导入到表的命令。
pt-query-digest --user=root --password=123456 --review h=127.0.0.1,D=slow_query_log,t=global_query_review --history h=127.0.0.1,D=slow_query_log,t=global_query_review_history --create-review-table /usr/local/mysql/log/slow.log
或者
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
导入数据的命令一般配置定时任务,每隔多久将慢日志导入到数据库中,这个可以根据自己的需求去定制了
这样就会存在global_query_review和global_query_review_history两个表了。
执行后,刷新页面
3,查看SQL具体信息
跳转画面后,点击Explain Plan,可能出现 “Error in Query Explain Plugin: Missing field host” 的错误,需要修改配置文件
这个应该是动态的,但是目前是只是一个测试库,所以直接写定db名
修改完成,重启httpd
部署参考:http://www.tuicool.com/articles/Vny2Y3Y