本文主要介绍使用Anemometer基于pt-query-digest将MySQL慢查询可视化,因为网上资料相对较少,且都是英文的,遇到报错也没有相关的参考资料,因此写此文。

欢迎转载,请注明作者、出处。

作者:张正

blog:http://space.itpub.net/26355921

QQ:176036317

如有疑问,欢迎联系。

准备条件:

1.MySQL开启慢查询

2.安装Percona Toolkit

rpm -qa|grep percona

percona-toolkit-2.2.7-1

3.下载Anemometer

官网:https://github.com/box/Anemometer

4.准备好php相关模块(或者yum)

5.启动apache服务

rpm -qa|grep http

httpd-2.2.3-45.el5

安装:

1.安装Percona Toolkit:

rpm -ivh percona-toolkit-2.2.7-1.noarch.rpm

2.将Anemometer文件包解压,重命名为anemometer,并移动到/var/www/html 下(apache默认路径)

pwd

/var/www/html/anemometer

3.安装php相关模块:

rpm -qa|grep php

php53-common-5.3.3-1.el5

php53-bcmath-5.3.3-1.el5

php53-mysql-5.3.3-1.el5

php53-dba-5.3.3-1.el5

php53-cli-5.3.3-1.el5

php53-gd-5.3.3-1.el5

php53-5.3.3-1.el5

php53-pdo-5.3.3-1.el5

NOTE:

PHP版本要大于5.3,否则就报错,如:

Anemometer requires PHP 5.3 or newer. You have 5.1.6

除此之外还需要:bcmath

rpm -qa|grep bcmath

php53-bcmath-5.3.3-1.el5

4.执行setup 脚本,创建用户:

[root@/var/www/html/anemometer]mysql -uroot -pxxx < install.sql

[root@/var/www/html/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';

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

pt 版本小于2.2版本的语句:

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

pt 版本大于2.2版本的语句:

pt-query-digest --user=anemometer --password=test --review h=hd-119-186,D=slow_query_log,t=global_query_review --history h=hd-119-186,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

执行这个操作后,将会把慢日志分析后存入mysql的slow_query_log数据库。

NOTE:

记得保证相应 '用户'@'主机' 的访问权限

6.修改可视界面的配置信息:

cd /var/www/html/anemometer/conf

cp sample.config.inc.php config.inc.php

vi config.inc.php

以及:

NOTE:

主机名一定要修改正确,不能保留为localhost,否则会导致最终界面无法访问。

7.最终本地通过IP访问:

http://192.168.44.130/anemometer

查询后可获得慢查询日志的结果:

补充:如何监控多个数据库

[root@RZ-SI1-DB-14 conf]# ll

total 40

-rwxr-xr-x 1 root root 15504 Oct 12 14:51 config.inc.php                   ###新版都不需要修改里面的配置了,只需要修改下面的datasource

-rwxrwxrwx 1 root root 314 Oct 12 14:54 datasource_si1.inc.php

-rwxr-xr-x 1 root root 314 Oct 12 15:05 datasource_st1.inc.php         ---配置多个datasource,si1 st1 机器上分别导入install.sql  并pt-query-digest 慢日志进去

-rwxrwxrwx 1 root root 0 Oct 13 2016 index.html

-rwxrwxrwx 1 root root 15487 Oct 13 2016 sample.config.inc.php

[root@RZ-SI1-DB-14 conf]# more datasource_si1.inc.php

$conf['datasources']['si1'] = array(

'host'  => '10.38.96.132',

'port'  => 3306,

'db'    => 'slow_query_log',

'user'  => 'xxxxxx',

'password' => 'xxxxxx',

'tables' => array(

'global_query_review' => 'fact',

'global_query_review_history' => 'dimension'

),

'source_type' => 'slow_query_log'

);

[root@RZ-SI1-DB-14 conf]# more datasource_st1.inc.php

$conf['datasources']['st1'] = array(

'host'  => '10.38.96.128',

'port'  => 3306,

'db'    => 'slow_query_log',

'user'  => 'xxxxxxx',

'password' => 'xxxxxxxx',

'tables' => array(

'global_query_review' => 'fact',

'global_query_review_history' => 'dimension'

),

'source_type' => 'slow_query_log'

);

参考文章:

https://github.com/box/Anemometer

https://rtcamp.com/tutorials/mysql/slow-query-log-anemometer/

anemometer mysql 500_【Mysql】Anemometer-可视化慢sql查看相关推荐

  1. anemometer mysql 500_Anemometer将Mysql慢查询日志可视化

    工作原理:Anemometer: 实现慢查询sql可视化 pt-query-digest :抽取慢查询日志 /etc/my.cnf 开启慢查询 [ #slow_query log_queries_no ...

  2. 4.MySQL连接并选择数据库(SQL C)

    在连接了MySQL数据库之后,可以通过SQL命令或者C.PHP.JAVA等程序来指定需要操作的数据库.这里主要介绍SQL命令和相应的C程序. 首先创建用户rick(赋予所有权限) mysql> ...

  3. Mysql 数据库命令行导出导入sql脚本

    2019独角兽企业重金招聘Python工程师标准>>> 导出数据库中所有表的sql脚本(包含数据): 1.运行命令终端 cmd.exe 2.输入:mysqldump- uroot - ...

  4. MySQL查询本年的数据的sql语句

    MySQL查询本年的数据的sql语句: SELECT * FROM 表名 WHERE YEAR(时间字段)=YEAR(NOW());

  5. mysql @pdept_MySQL 基本管理与常用sql 归结

    备份恢复的策略 1.确定要备份表的存储引擎是事务还是非事务的,不同的引擎备份方式在处理数据一致性方面 是不大一样的. 2.确定使用全备份还是增量备份.全备份的优点是备份保持最新备份,恢复的时候可以花费 ...

  6. 【MySQL】MySQL开发注意事项与SQL性能优化步骤

    MySQL简介 地表最流行数据库 名副其实 什么是MySQL? 世界上应用最广泛且灵活的开源关系数据库 MySQL 是应用最广泛的开源关系数据库,是许多常见网站,应用程序和商业产品使用的主要关系数据存 ...

  7. mysql查找执行效率慢的SQL语句

    启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql MySQL 自带 slow log 的分析工具 mysqldumpslow. sl ...

  8. mysql administrator 备份 表_【转】如何使用 MySQL Administrator 管理/备份/还原 My SQL 数据库...

    如何使用 MySQL Administrator 管理/备份/还原 My SQL 数据库 MySQL Administrator 是什么软件? MySQL Administrator 是一个专门用于管 ...

  9. MySQL之深入解析一条SQL的执行流程

    前言 天天和数据库打交道,一天能写上几十条 SQL 语句,但你知道系统是如何和数据库交互的吗?MySQL 是如何存储数据.又是如何管理事务?是不是感觉真的除了写几个 「select * from du ...

最新文章

  1. asp.net中窗口相关操作总结(javascript)
  2. Eureka 服务注册与发现02——集群版
  3. 模拟器上安装不能被卸载的apk
  4. 无法显示 xml 页 解决方案
  5. 文件路径转换为数组php,php – 如何将目录结构转换为url数组
  6. 刷新记录! CVPR2021全新目标检测机制达到SOTA!
  7. SVN: Can't create session svn
  8. JS基础--Date.parse(),Date.UTC()和Date.now()
  9. 如何枚举系统的视音频采集设备
  10. 蓝宝石rx470d原版bios_蓝宝石显卡等级划分,如何区分双胞胎矿卡,旗舰值得入手吗?...
  11. JavaScript中的onmouseover事件和onmouseout事件实例
  12. 机器人庄园作文_300个字我的梦想作文
  13. gomarket服务器位置,V712双核版机型常见问题集解答.pdf
  14. 《JAVASE系列》一个小小的图书管理系统
  15. hexo(sakura)给博客增添侧边栏(回到顶部,跳转评论,深色模式,播放音乐)Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
  16. IEEE 软件单元测试标准
  17. OpenGL-曲面细分
  18. POJO,PO,JAVABEAN
  19. MarkDown 排版测试
  20. MySQL与自然语言处理_zt 计算语言学 与 自然语言处理

热门文章

  1. SSL证书提示风险打不开网页怎么办
  2. ~5 ccf 2021-12-2 序列查询新解
  3. 期待第二届云计算大会
  4. UVA 11426 GCD - Extreme (II) (欧拉函数)
  5. 打印机出现“错误-正在打印”的处理办法
  6. 网络规划师上午备考知识点(一)(万能协议篇)
  7. 使用Java对HBase进行操作(三)
  8. 云计算运维工程师前景怎么样?
  9. S7-1200变量地址
  10. 纯前端导入excel表格数据