使用Anemometer基于pt-query-digest将MySQL慢查询可视化
最近玩MySQL,发现了一个很不错的工具,可以把MySQL慢查询可视化,方便我们去找出和分析慢询语句,搭建的步骤不多,但网上详细教程比较少,说得也不够详细,一不小心,估计得蛋痛一会,哈哈
Percona Toolkit 是一组高级的命令行工具,用来管理 MySQL 和系统任务,主要包括:
1、验证主节点和复制数据的一致性
2、有效的对记录行进行归档
3、找出重复的索引
4、总结 MySQL 服务器
5、从日志和 tcpdump 中分析查询
6、问题发生时收集重要的系统信息
一、PT安装:
方法一:rpm包安装
[root ~]$ wget http://www.percona.com/downloads/percona-toolkit/LATEST/RPM/percona-toolkit-2.2.12-1.noarch.rpm
[root ~]$ yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes -y
[root ~]$ rpm -ivh percona-toolkit-2.2.-.noarch.rpm
warning: percona-toolkit-2.2.-.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [%]
:percona-toolkit ########################################### [%]
如果yum 安装不上依赖包,则检查下epel源,也可以查看http://www.cnblogs.com/xuanzhi201111/p/4040761.html去解决!
方法二:源码包安装
[root ~]$ wget http://www.percona.com/downloads/percona-toolkit/2.2.12/deb/percona-toolkit_2.2.12.tar.gz
[root ~]$tar zxf percona-toolkit_2.2.12.tar.gz
[root ~]$cd percona-toolkit_2.2.12
[root percona-toolkit-2.2.]$perl Makefile.PL
[root percona-toolkit-2.2.]$ make && make install
工具安装目录在:/usr/local/bin
二、下载Anemometer
官网:https://github.com/box/Anemometer
三、安装httpd php,php版本要大于5.3,否则就报错,除此之外还需要:bcmath,php必须支持pdo_mysql、php_mysqli模块,下面我们来安装一下:
[root ~]$ yum install httpd php *bcmath* *mysqli* -y
如果epel源像以下的,说明是旧的,该源没有php_mysqli相关模块的
[root yum.repos.d]$ rpm -q epel-release
epel-release--.noarch
以下版本才有:
[root yum.repos.d]$ rpm -q epel-release
epel-release--.noarch
我的mysql早已经安装好了的,这里就不多说了
四、将Anemometer文件包解压,重命名为anemometer,并移动到/var/www/html 下(apache默认路径)
[root ~]$ unzip Anemometer-master.zip
[root ~]$ mv Anemometer-master /var/www/html/anemometer
五、导入anemometer目录下的install.sql,并给该库对应的权限:
[root anemometer]$ pwd
/var/www/html/anemometer
[root anemometer]$ mysql -uroot -p123456 -S /data/mysql-5.5./mysql.sock <./mysql56-install.sql
mysql> grant all on slow_query_log.* to 'anemometer'@'%' identified by '';
Query OK, 0 rows affected (0.03 sec) mysql> grant all on slow_query_log.* to 'anemometer'@'localhost' identified by '';
Query OK, 0 rows affected (0.00 sec) mysql> grant select on *.* to 'anemometer'@'%';
Query OK, 0 rows affected (0.00 sec) mysql> grant all on slow_query_log.* to 'anemometer'@'localhost';
Query OK, 0 rows affected (0.00 sec) mysql> grant select on *.* to 'anemometer'@'localhost';
Query OK, 0 rows affected (0.00 sec)
六、修改可以视化界面的配置信息
修改php配置,vim /etc/php.ini添加以下内容,(如果本来就有;extension = mysqli.so,只需要把分号去掉即可,我的是yum安装的,本来没有,所以自己加)
修改apache的配置文件,vim /etc/httpd/conf/httpd.conf
[root conf]$ cat /etc/httpd/conf/httpd.conf |grep "ServerName"
# ServerName gives the name and port that the server uses to identify itself.
ServerName 192.168.1.128:
重启httpd,访问不了,看httpd的日志报以下错:
date_default_timezone_set(): Timezone ID 'CST' is invalid in /var/www/html/anemometer/lib/Anemometer.php on line
[Fri Nov :: ] [error] [client 192.168.1.1] PHP Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the d
ate_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST'
instead in /var/www/html/anemometer/lib/Anemometer.php on line
修改下/etc/php.ini
如果重启httpd,还是访问不了,日志还是报同时区的错误,则再修改以下的:
vim /var/www/html/anemometer/lib/Anemometer.php +47 添加下内容:
访问:http://192.168.1.128/anemometer,会提示没有global_query_review表,哈哈,别着急哈^.^
七、将慢查询日志通过pt-query-digest分析后存入数据库中:
[root ~]$ pt-query-digest --user=anemometer --password= --socket=/data/mysql-5.5.40/mysql.sock \
> --review h=localhost,D=slow_query_log,t=global_query_review \
> --history h=localhost,D=slow_query_log,t=global_query_review_history \
> --no-report --limit=% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /data/mysql-5.5.40/localhost-slow.log
如果你的mysql是通过sock方式连接的话,必须加上--socket指定sock文件,执行完以上的命令,数据库里就会多出global_query_review 表和global_query_review_history表了
详细导入可以查看官方帮助文档和表属性说明:
http://www.mysqlperformanceblog.com/2012/08/28/hidden-columns-of-query_review_history/
http://code.google.com/p/maatkit/wiki/EventAttributes
回到web端查看:
想了解更多功能,或者怎么使用,这要看大家了^.^
可以参考文章:
https://github.com/box/Anemometer
http://blog.itpub.net/26355921/viewspace-1162415/
作者:陆炫志 出处:xuanzhi的博客 http://www.cnblogs.com/xuanzhi201111 您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。 |
使用Anemometer基于pt-query-digest将MySQL慢查询可视化的更多相关文章
- 【转载】 使用Anemometer基于pt-query-digest将MySQL慢查询可视化
原文地址:使用Anemometer基于pt-query-digest将MySQL慢查询可视化 作者:84223932 本文主要介绍使用Anemometer基于pt-query-digest将MySQL ...
- 十分钟部署Anemometer作为Mysql慢查询可视化系统
前言 采用Anemometer将Mysql慢查询日志可视化,可以更便捷的查询慢查询日志,并根据时间戳进行历史查询.如下是单机版Anemometer部署的演示,实际应用中,为安全起见,建议把anemom ...
- 032:基于Consul和MGR的MySQL高可用架构
目录 一.Consul 1.Consul简介 2.准备环境 3.Consul 安装 4.Consul配置文件 5.Consul 服务检查脚本 6.Consul启动 二.MGR搭建 1.MGR配置 2. ...
- MySQL中查询时"Lost connection to MySQL server during query"报错的解决方案
一.问题描述: mysql数据库查询时,遇到下面的报错信息: 二.原因分析: dw_user 表数据量比较大,直接查询速度慢,容易"卡死",导致数据库自动连接超时.... 三.解决 ...
- 使用Anemometer分析MySQL慢查询记录
数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观. 下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer. 在使用之前需要安装pe ...
- Advanced Installer 11.9基于IIS打包札记(For MySQL)
原文:Advanced Installer 11.9基于IIS打包札记(For MySQL) Mysql免安装前期部署 下载绿色命令行版本的mysql,将其放入到发布的程序发布包内,执行Update批 ...
- Django Mysql数据库-基于双下划线的跨表查询
一.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(mode ...
- mysql慢查询日志相关参数
-- mysql慢查询日志相关参数 -- 慢查询日志时间 show variables like "long_query_time"; -- 将时间设置为2s ; -- 是否开启慢 ...
- mysql慢查询分析工具比较与实战
00 前言 在进行mysql性能优化的时候,第一个想到的便是查看慢sql. 但是对于慢sql有没有什么好的工具进行分析呢? 推荐两个工具mysqldumpslow及pt-query-digest. m ...
随机推荐
- 脚手架vue-cli系列五:基于Nightwatch的端到端测试环境
不同公司和组织之间的测试效率迥异.在这个富交互和响应式处理随处可见的时代,很多组织都使用敏捷的方式来开发应用,因此测试自动化也成为软件项目的必备部分.测试自动化意味着使用软件工具来反复运行项目中的测试 ...
- Alienware-15-R3 装Ubuntu 16.04.3 LTS
前言:Alienware-15-R3默认安装的系统是win10.现在卸载win0,装Ubuntu 16.04.3 LTS. 一.下载Ubuntu 16.04.3 LTS镜像文件,下载地址:https: ...
- Java并发框架AbstractQueuedSynchronizer(AQS)
1.前言 本文介绍一下Java并发框架AQS,这是大神Doug Lea在JDK5的时候设计的一个抽象类,主要用于并发方面,功能强大.在新增的并发包中,很多工具类都能看到这个的影子,比如:CountDo ...
- QC内部分享ppt
Quality Center是一个基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括制定测试需求.计划测试.执行测试和跟踪缺陷.此外,通过Quality Center还可以创建报 ...
- Android_GLSurfaceView
使用open GL ES 绘制三角形 首先自定义一个GLSurfaceView class MyGLSurceView extends GLSurfaceView { public MyGLSurce ...
- CSS兼容性(IE和Firefox)技巧
CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理技巧并整理了一下.对于web2.0的过度,请尽量用xhtml格 ...
- mybatis教程1(基本使用)
官方网站 一.什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果 ...
- javascript Uncaught ReferenceError: 方法名 is not defined
前言: 那天我犯了这样一个低级错误,如果按照这样下去,根本在这条路上走不远.错的太离谱,把代码拿出来自己笑笑,等摆脱菜鸟之名的时候再回来好好的告诉自己,都是这么过来的,原来以前我菜的这么离谱.. 错误 ...
- ELK(elasticsearch+kibana+logstash)搜索引擎(一): 环境搭建
1.ELK简介 这里简单介绍一下elk架构中的各个组件,关于elk的详细介绍的请自行百度 Elasticsearch是个开源分布式搜索引擎,是整个ELK架构的核心 Logstash可以对数据进行收集. ...
- python的Web框架,类视图
类视图 范式 from django.views import View # 继承View class IndexView(View): def get(self, request): #写法和函数视 ...