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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

本文主要描述基于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';

install.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。

最后附上该工具的完整文档:
MySQL慢查询监控Query-Digest-UI.docx
本文转自ITPUB博客84223932的博客,原文链接:Query-digest-UI监控慢查询,以及此工具的改进版,如需转载请自行联系原博主。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
Linux 测试技术
Linux基础项目开发1:量产工具——UI系统(五)
Linux基础项目开发1:量产工具——UI系统(五)
141 0
Linux基础项目开发1:量产工具——UI系统(五)
|
Cloud Native 数据可视化 数据安全/隐私保护
云原生之部署Docker可视化管理工具docker.ui
云原生之部署Docker可视化管理工具docker.ui
765 2
|
12月前
|
数据处理
「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
本篇将带你实现一个评分统计工具,用户可以对多个选项进行评分。应用会实时更新每个选项的评分结果,并统计平均分。这一功能适合用于问卷调查或评分统计的场景。
340 65
「Mac畅玩鸿蒙与硬件45」UI互动应用篇22 - 评分统计工具
|
11月前
不要再责怪你的UI设计师为什么没有用rp?ps?figma?sketch?xd?如何免费转换非在线工具收费转换-本文将教会你常规ui设计源文件格式相互之间如何转换并且保持矢量图和标注注释问题-优雅草央千澈
不要再责怪你的UI设计师为什么没有用rp?ps?figma?sketch?xd?如何免费转换非在线工具收费转换-本文将教会你常规ui设计源文件格式相互之间如何转换并且保持矢量图和标注注释问题-优雅草央千澈
353 1
|
监控 Java Maven
微服务技术系列教程(10) - SpringBoot - 监控管理 - Admin-UI
微服务技术系列教程(10) - SpringBoot - 监控管理 - Admin-UI
208 0
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
378 1
30行代码实现一个带UI界面的图片背景移除工具:并附带web网页
人工智能技术正处于蓬勃发展中,移除图片背景的方法众多,涵盖了各式各样的实现途径和模型。然而,这些方法往往在安装和配置环境方面稍显复杂。今天,介绍一种极其简便的方法——大约30行代码,就能实现这一功能。虽然相比之下可能稍显简单,但对于不太苛刻的需求来说,这种方法颇为方便实用。
|
消息中间件 Kafka Linux
Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
【2月更文挑战第21天】Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
2051 2
|
Kubernetes 监控 IDE
K8S 实用工具之三 - 图形化 UI Lens
K8S 实用工具之三 - 图形化 UI Lens
|
监控 API 数据处理
Flink web ui不仅仅是一个监控指标性能的网站
Flink web ui不仅仅是一个监控指标性能的网站
576 3

热门文章

最新文章