Query-digest-UI监控慢查询,以及此工具的改进版

本文主要描述基于pt-query-digest工具对慢查询日志进行监控的工具Query-digest-UI。(安装、使用、介绍以及benren提供的改进版)

本文中描述的内容与其他网站上对Query-digest-UI的安装和使用稍有不同,因为本人对此工具稍做了调整。

欢迎转载,请注明作者、出处。
作者:张正
blog:http://space.itpub.net/26355921 
QQ:176036317
如有疑问,欢迎联系。

准备条件:
1.MySQL开启慢查询
2.安装Percona Toolkit
rpm -qa|grep percona
percona-toolkit-2.2.7-1
下载(百度云盘):http://pan.baidu.com/s/1eQgQAhc

3.下载Query-Digest-UI
官网:https://github.com/kormoc/Query-Digest-UI
下载(百度云盘):http://pan.baidu.com/s/1gd1Nn1L

4.准备好php相关模块(或者yum)
Apache, mod_php, php_pdo
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
NOTES:
需要先安装:perl-DBD-MySQL-3.0007-2.el5
但是安装此模块时,可能会报错:
libmysqlclient.so.15()(64bit) is needed by perl-DBD-MySQL-3.0007-2.el5.x86_64
libmysqlclient.so.15(libmysqlclient_15)(64bit) is needed by perl-DBD-MySQL-3.0007-2.el5.x86_64
需要安装 或 提供libmysqlclient.so.15
可在/usr/lib或者/usr/lib64下,对libmysqlclient.so.16或libmysqlclient.so.18 建立软连接:libmysqlclient.so.15
ln -s /usr/lib64/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.15

2.将Query-Digest-UI-master.zip文件包解压,重命名为slow,并移动到/var/www/html 下(apache默认路径)
pwd
/var/www/html/slow
3.安装php相关模块:

4.执行setup 脚本,并创建用户:
此处的install.sql脚本为Anemometer工具的脚本,该脚本创建的global_query_review和global_query_review_history表
比pt-query-digest工具创建的表多一些字段,能提供更详细的信息。


[root@/var/www/html/slow]mysql -uroot -pxxx < install.sql
[root@/var/www/html/slow]mysql -uroot -pxxx
mysql > grant all on slow_query_log.* to 'slow'@'%' identified by 'test';
mysql > grant select on *.* to  'slow'@'%';
mysql > grant all on slow_query_log.* to 'slow'@'localhost';
mysql > grant select on *.* to  'slow'@'localhost';

fj.pnginstall.sql
5.将慢查询日志通过pt-query-digest分析后存入db.example.com主机上的数据库中:
pt 版本小于2.2版本的语句:
pt-query-digest --user=slow --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=slow --password=test --review h=db.example.com,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
NOTES:
1.此处的$HOSTNAME 的值为执行该命令主机的主机名。
2.如果是用一台服务器监控多台mysql数据库的慢查询,修改 --filter 中  $event->{hostname}=\"host2\""
3.或者将host2改为IP,即主机名显示为IP,取本机局域网IP:
将host2改为:
`ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F':' '{print $2}'`
执行这个操作后,将会把慢日志分析后存入mysql的slow_query_log数据库。记得保证相应 '用户'@'主机' 的访问权限。
6.修改数据库连接信息:
pwd
/var/www/html/slow
cp config.php.example config.php
vi config.php
. . . . . . 
$reviewhost = array(
// Replace hostname and database in this setting
// use host=hostname;port=portnum if not the default port

    'dsn'           => 'mysql:host=hostname;port=3306;dbname=slow_query_log',


    'user'          => 'slow',


    'password'      => 'test',


// See http://www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.html#cmdoption-pt-query-digest--review


    'review_table'  => 'global_query_review',


// This table is optional. You don't need it, but you lose detailed stats


// Set to a blank string to disable


// See http://www.percona.com/doc/percona-toolkit/2.1/pt-query-digest.html#cmdoption-pt-query-digest--review-history


    'history_table' => 'global_query_review_history',

);
注意正确填写红色字体部分变量的值。
7.通过网页访问:(注:目前发现该工具不支持360浏览器)
http://192.168.44.130/slow
效果图:
 


8.发现如果该工具监控多台MySQL服务器,慢查询日志又非常多的情况下,会发现非常不方便。
我对这个工具进行了修改,增加了hosts列,可通过选择框选择相应的值进行过滤:


下载(百度云盘):http://pan.baidu.com/s/1hqoUcpm
9.这个监控界面已经有了对主机名的过滤筛选,但是如果用于实际的生产环境中来监控,还是显得不够直观。
我对这个工具又进行了进一步的修改,界面如下:


下载(百度云盘):http://pan.baidu.com/share/link?shareid=3651139099&uk=2550236109

1.第一列直接为SQL语句,可在下面输入相应的语句,匹配方式为 like '%strings%'
2.第二列为总执行次数
3.第三列为总的执行时间
4.第四列为平均执行时间
5.第五列为平均返回行数
6.第六列为平均扫描行数
7.增加了第七列,使用时间来进行过滤。
进入本监控页面,默认是显示所有慢查询SQL的前10条。然后可通过该选项列表中选择 最近3天、最近7天、10天以前、以及可以单独选择从从10天以前到现在的每一天中的SQL情况。
实际生产的监控环境,可通过Last executed和Monitored Hosts来过滤我们需要查看的慢查询SQL。

最后附上该工具的完整文档:
fj.pngMySQL慢查询监控Query-Digest-UI.docx
本文转自ITPUB博客84223932的博客,原文链接:Query-digest-UI监控慢查询,以及此工具的改进版,如需转载请自行联系原博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电热水器工作过程 c语言,热水器工作流程图

燃气热水器做为热水供应设备&#xff0c;被很多家庭所采用&#xff0c;然而&#xff0c;恒温作为燃气热水器的一个痛点&#xff0c;一次次被击中&#xff0c;那么到底为什么燃气热水器实现恒温这么难呢&#xff1f;我们将从原理讲起&#xff0c;带您认识真正的燃气热水器。燃气…

es6 模块化

test.js var vm"321321"; export { vm }; ------------------------------------------------------ export var name"李四"; a.vue import {vm} from /test console.log(vm); ------------------------------------------------------ console.log(name);…

linux上tail命令_如何在Linux上使用tail命令

linux上tail命令Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / ShutterstockThe Linux tail command displays data from the end of a file. It can even display updates that are added to a file in real-time. We show you how to use it. Linux tail…

初学者万年历c语言源代码,C语言万年历的源程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼for(j1;j<mon[i];j){cprintf("%3d ",j);/*if((firstj-1)%70)putchar(\n);*/}/*first(firstmon[i])%7;if(first0)first7;*/}}void month5_8(){for(i0;i<2;i){window(2i*w,3,29w*i,11);textbackground(5);clrscr();t…

用imageMagick的composite合并图片

composite命令可以非常方便的合并两张图片 因此用来进行图像加水印、批量增加边框等常用的变换 最简单的用法为&#xff1a; composite -gravity north src.jpg coverback.jpg des.jpg 其中src.jpg为前景图片 coverback.jpg为背景图片。 des.jpg为叠加后的结果 -gravity north …

白帽子讲web安全——认证与会话管理

在看白帽子讲web安全&#xff0c;刚好看到认证与会话管理&#xff1a;也就是我们在平常渗透测试中遇到最多的登录页面&#xff0c;也即是用户名和密码认证方式&#xff0c;这是最常见的认证方式。 了解两个概念&#xff1a;认证和授权 1&#xff09;&#xff1a;认证的目的是为…

iphone充电图_哪些iPhone具有无线充电功能?

iphone充电图Kevin Parrish凯文帕里什Wireless charging means you can re-energize your phone’s battery without a physical tether. It also prevents possible damage to your phone’s charging port. Unfortunately, not all phones support wireless charging, but we…

关联分析算法c语言实现,机器学习关联分析

AI开发平台ModelArtsModelArts是面向开发者的一站式AI开发平台&#xff0c;为机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式Training、自动化模型生成&#xff0c;及端-边-云模型按需部署能力&#xff0c;帮助用户快速创建和部署模型&#xff0c;管理全周…

windows平台下基于QT和OpenCV搭建图像处理平台

在之前的博客中&#xff0c;已经分别比较详细地阐述了“windows平台下基于VS和OpenCV”以及“Linux平台下基于QT和OpenCV"搭建图像处理框架&#xff0c;并且生成了相应的免费视频。这篇博客的主要内容&#xff0c;就是基于最新版本的相应工具&#xff0c;在windows平台下&…

android死锁解决方案,【线程死锁】Android多线程死锁产生的原因以及如何避免

一、死锁定义1、生活中的列子两人吃饭&#xff0c;但只有一双筷子&#xff0c;2人轮流吃(同时拥有2只筷子才能吃)&#xff0c;某个时候一人拿了左筷子&#xff0c;一人拿了右筷子&#xff0c;两人同时占用一个资源&#xff0c;等待另一个资源&#xff0c;这时候甲等乙吃完并释放…

前端开发 常用用的静态服务器

1 运用anywhere 安装 &#xff1a;npm install anywhere -g想要以某个路径作为静态文件服务器的根目录分享&#xff0c;只需要在该目录下执行&#xff1a;anywhere 就会默认8000打开网页&#xff0c; 若文件不是index.html 需要输入文件名 A: anywhere -p 8000 ## 指定静态服务…

前端面试题整理

1.HTML5的新特性。 主要讲讲新增哪些API:地理定位&#xff0c;拖放&#xff0c;web存储应用缓存&#xff0c;webworkers&#xff0c; sse 。 http://www.w3school.com.cn/html5/html_5_intro.asp 2.CSS3的新特性。 https://segmentfault.com/a/1190000010780991 3、使用严格模式…

android mvvm 官方例子,详解Android的MVVM框架 - 数据绑定

&#xfeff;本教程是跟着 Data Binding Guide学习过程中得出的一些实践经验&#xff0c;同时修改了官方教程的一些错误&#xff0c;每一个知识点都有对应的源码&#xff0c;争取做到实践与理论相结合。Data Binding 解决了 Android UI 编程中的一个痛点&#xff0c;官方原生支…

VS2015 代码左缩进

TabShift转载于:https://www.cnblogs.com/527289276qq/p/8027882.html

mac设置文件权限_如何在Mac上设置文件权限

mac设置文件权限Like all major operating systems, macOS allows you to restrict access to files using a complex set of file permissions. You can set these yourself using the Finder app, or by using the chmod command in your Mac’s terminal. Here’s how. 与所…

Discrete Log Algorithms :Baby-step giant-step

离散对数的求解 1.暴力 2.Baby-step giant-step 3.Pollard’s ρ algorithm …… 下面搬运一下Baby-step giant-step 的做法 这是在 https://ctf-wiki.github.io/ctf-wiki/crypto/asymmetric/discrete-log/discrete-log/ 上看到的&#xff0c;比较容易理解。 而且&#xff0c;…

Android添加item动画,RecyclerView基础篇-Item添加动画

Android_Banner.jpg简介本节中我们介绍下给RecyclerView中的Item添加动画。添加的动画&#xff0c;分为&#xff0c;在打开列表时有Item的展示动画&#xff0c;当滑动的时候没有动画和打开列表滑动时有动画两种实现过程实现一个列表效果如下Screenshot_2020-09-01-17-03-35-349…

Oracle数据库查询用 where in 查询的项超过1000条的解决方案

众所周知&#xff0c;如果我们的用SQL查询语句时&#xff0c;如果用where in带的参数超过1000条的话&#xff0c;oracle是会报错的。 因为项目中遇到这样的问题&#xff0c;所以找到了接下来我要说的这个办法。 因为用的地方很多&#xff0c;所以我把这个封装成了一个方法。 //…

geek_Ask How-To Geek:营救受感染的PC,安装无膨胀iTunes和驯服疯狂的触控板

geekYou’ve got questions and we’ve got answers. Today we highlight how to save your computer if it’s so overrun by viruses and malware you can’t work from within Windows, install iTunes without all the bloat, and tame a hyper-sensitive trackpad. 您有问…

第1课:接口测试和jmeter总结

接口测试 1. 接口的分类&#xff1a;webService和http api接口1&#xff09; webService接口&#xff1a;是按照soap协议通过http传输&#xff0c;请求报文和返回报文都是xml格式&#xff0c;一般要借助工具来测试接口&#xff1b;2&#xff09; http api接口&#xff1a;是按照…