想要实现慢查询查询分析,需要在被监控端安装percona-toolkit工具
 
1、被监控端安装软件包
yum -y install
perl-IO-Socket-SSL
yum -y install perl-DBI
yum -y install perl-DBD-MySQL
yum -y install perl-Time-HiRes
 
2、被监控端解压percona-toolkit工具包
[root@node1
src]# pwd
/usr/local/src
[root@node1
src]# tar
-xzf percona-toolkit-2.2.12.tar.gz
[root@node1
src]# ll
drwxrwxr-x 6
1000 1000 4096 Aug 17 16:19 percona-toolkit-2.2.12
-rw-r--r-- 1
root root 1392691 Aug 17 16:17 percona-toolkit-2.2.12.tar.gz
[root@node1
src]# ll
[root@node1
src]# cd
percona-toolkit-2.2.12
[root@node1
percona-toolkit-2.2.12]# perl Makefile.PL
[root@node1
percona-toolkit-2.2.12]# make && make
install
安装好之后,pt工具会在/usr/local/bin目录下(不同的pt版本安装的位置可能不同)
 
3、从监控端的/usr/local/lepus/client/mysql目录下把lepus_slowquery.sh脚本拷贝到被监控端(存放的位置没有要求,可以放在/usr/local/sbin目录下)
[root@node9
mysql]# scp lepus_slowquery.sh 192.168.2.225:/usr/local/sbin
 
4、在被监控端编辑scp过来的lepus_slowquery.sh脚本
[root@node1
sbin]# pwd
/usr/local/sbin
[root@node1
sbin]# vim
lepus_slowquery.sh
        #下面蓝色字体是需要修改的,其他不用修改。
#config lepus database server      
  #监控机配置
lepus_db_host="192.168.2.33"    
#监控机的IP
lepus_db_port=3306     #监控机的端口号
lepus_db_user="lepus_user"  
  #监控机的用户名
lepus_db_password="123456"  
  #监控机的密码
lepus_db_database="lepus"  
  #使用的库
 
#config mysql
server         #被监控端配置
mysql_client="/usr/local/mysql/bin/mysql"  
  #mysql软件安装目录下,这个就是平时所用的mysql -uroot -proot123的那个mysql。
mysql_host="192.168.2.201"  
  #被监控端的IP
mysql_port=3306  
  #被监控端的端口号,生产中不要用这个,用别的
mysql_user="lepus_monitor"  
  #远程登录用户名
mysql_password="123456"     #密码
 
#config slowqury      
  #被监控端慢查询日志配置(存放目录)
slowquery_dir="/log/mysql/"      
  #MySQL慢日志存放目录,也是被监控端存放lepus分析出来的慢查询日志存放目录
slowquery_long_time=1      
  #慢查询时间
slowquery_file=`$mysql_client -h$mysql_host
-P$mysql_port -u$mysql_user -p$mysql_password -e "show variables like
'slow_query_log_file'"|grep log|awk '{print $2}'`
pt_query_digest="/usr/local/bin/pt-query-digest"  
      #pt工具软件的安装目录下,安装的时候关注一下安装到的位置。
 
#config
server_id
lepus_server_id=271  
   
  #这个server_id指的是lepus监控平台所分配的id,需要通过下面的方式来查看,参考截图:
注意:
lepus_server_id,该值需要从系统中获取。进入MySQL服务器配置,在部署脚本的主机前查询到当前ID即为主机的server_id。
lepus_server_id必须和MySQL服务器配置里的对应服务器ID一一对应,否则您可能将无法查询到该主机的慢查询。
 
#collect
mysql slowquery log into lepus database
$pt_query_digest --user=$lepus_db_user
--password=$lepus_db_password --port=$lepus_db_port --review
h=$lepus_db_host,D=$lepus_db_database,t=mysql_slow_query_review --history
h=$lepus_db_host,D=$lepus_db_database,t=mysql_slow_query_review_history
--no-report --limit=100% --filter=" \$event->{add_column} =
length(\$event->{arg}) and \$event->{serverid}=$lepus_server_id "
$slowquery_file > /tmp/lepus_slowquery.log
 
##### set a
new slow query log ###########
tmp_log=`$mysql_client -h$mysql_host -P$mysql_port
-u$mysql_user -p$mysql_password -e "select
concat('$slowquery_dir','slowquery_',date_format(now(),'%Y%m%d%H'),'.log');"|grep
log|sed -n -e '2p'`
 
#config mysql
slowquery
$mysql_client
-h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global
slow_query_log=1;set global
long_query_time=$slowquery_long_time;"
$mysql_client
-h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "set global
slow_query_log_file = '$tmp_log'; "
 
#delete log
before 7 days
cd
$slowquery_dir
/usr/bin/find
./ -name 'slowquery_*' -mtime +7|xargs rm -rf ;
 
####END####
说明:
vim编辑结束保存之后需要变更脚本格式
显示当前的格式(默认为dos,这是不能执行的):set
ff?
修改为Unix(变更为unix之后,脚本才可以成功执行):set
fileformat=unix
:wq退出vim编辑器
 
5、测试,使用存储过程插入1万条数据或者查询一个数十万行的表,查询结束之后手动执行一下这个脚本,这样在监控界面上就可以看到结果了。(测试SQL参见文档底部)
[root@node1 sbin]# sh
lepus_slowquery.sh
 
6、测试成功之后,加入计划任务。因为慢查询做了按小时的切割,建议计划任务时间间隔在1小时之内。
[root@node1
sbin]# crontab -e
crontab:
installing new crontab
[root@node1
sbin]# crontab -l
*/5 * * * *
/bin/sh /usr/local/sbin/lepus_slowquery.sh > /dev/null
2>&1
 
7、开启慢查询分析
在MySQL服务器管理里面电击右侧的编辑按钮,进入服务器编辑界面。
配置slowquery为打开状态
配置完成后,稍等片刻,即可在慢查询分析平台查看该库的慢查询日志。
 
 
8、开启慢查询自动邮件推送
慢查询自动推送是指定时将系统收集到的慢查询TOP数据定时推送给相应开发人员或者DBA进行优化,不需要在每台数据库上部署脚本。
MySQL慢查询自动推送通过计划任务(crontab)完成。如果需要推送,则需要在监控机(lepus所在主机)部署如下计划任务。
——注1:www.xxx.com请替换成您自己的lepus监控WEB访问地址,以下只是做一个示范,请勿照搬。
——注2:若没有links命令,需要安装:yum -y install
links
示例:
lepus所在的监控机执行:links
http://118.178.191.219:81/index.php/task/send_mysql_slowquery_mail
此时会在你配置的邮件中收到慢查询的推送信息。
crontab中的示例:
00 08 * * * links
http://www.xxxx.com/index.php/task/send_mysql_slowquery_mail > /dev/null
2>&1
我的crontab内容:
*/5 * * * * /usr/bin/links
http://118.178.191.219:81/index.php/lp_mysql/slowquery > /dev/null
2>&1
计划任务部署完成后,则会按照计划任务配置的时间将慢查询推送给对应人员。
慢查询推送的邮件人员需要在MySQL主机配置里面设置即可,邮箱留空则该数据库主机不会发送慢查询推送。
部署完成后,在计划任务的时间到达,您就可以看到推送的慢查询邮件了。
邮件格式和内容如下所示:
 
参考计划任务的书写:0 8 * * * curl
http://118.178.191.219:81/index.php/task/send_mysql_slowquery_mail >/dev/null
2>&1
 
测试SQL:
1、创建两张表:
part_tab(分区表)、no_part_tab(普通表)
DROP TABLE IF
EXISTS part_tab;
CREATE TABLE
part_tab(
c1 int
default NULL,
c2
varchar(30) default NULL,
c3 date not
null)
PARTITION BY
RANGE(year(c3))
(PARTITION p0 VALUES LESS THAN (1995)
,
PARTITION p1
VALUES LESS THAN (1996) ,
PARTITION p2
VALUES LESS THAN (1997) ,
PARTITION p3
VALUES LESS THAN (1998) ,
PARTITION p4
VALUES LESS THAN (1999) ,
PARTITION p5
VALUES LESS THAN (2000) ,
PARTITION p6
VALUES LESS THAN (2001) ,
PARTITION p7
VALUES LESS THAN (2002) ,
PARTITION p8
VALUES LESS THAN (2003) ,
PARTITION p9
VALUES LESS THAN (2004) ,
PARTITION p10
VALUES LESS THAN (2010) ,
PARTITION p11
VALUES LESS THAN (MAXVALUE));
 
DROP TABLE IF
EXISTS no_part_tab;
CREATE TABLE
no_part_tab(
c1 int
default NULL,
c2
varchar(30) default NULL,
c3 date not
null);
 
2、用存储过程插入800万条数据
delimiter
$$
drop
procedure if exists `load_part_tab` $$
CREATE
PROCEDURE load_part_tab()
begin
declare v int
default 0;
while v <
8000000
do
insert into
part_tab
values
(v,'testingpartitions',adddate('1995-01-01',(rand(v)*36520)mod
3652));
set v = v +
1;
end
while;
end$$
delimiter
;
 
call
load_part_tab();

天兔 -Lepus 慢查询分析平台配置的更多相关文章

  1. Lepus搭建企业级数据库慢查询分析平台

    前言 Lepus的慢查询分析平台是独立于监控系统的模块,该功能需要使用percona-toolkit工具来采集和记录慢查询日志,并且需要部署一个我们提供的shell脚本来进行数据采集.该脚本会自动开启 ...

  2. 天兔(Lepus)监控系统慢查询分析平台安装配置

    被监控端要安装pt工具 [root@HE1~]## yum -y install perl-IO-Socket-SSL [root@HE1~]## yum -y install perl-DBI [r ...

  3. 天兔(Lepus)监控操作系统(OS)安装配置

    监控和被监控端都要安装和配置snmp: [root@HE1bin]# yum install net-snmp* [root@HE1bin]# vi /etc/snmp/snmpd.conf 41行将 ...

  4. mysql性能优化-慢查询分析、优化索引和配置

    一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connec ...

  5. mysql优化:慢查询分析、索引配置优化

    一.优化概述二.查询与索引优化分析a.性能瓶颈定位show命令慢查询日志explain分析查询profiling分析查询b.索引及查询优化三.配置优化 max_connections back_log ...

  6. [转]mysql性能优化-慢查询分析、优化索引和配置

    一. 优化概述 MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候.磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在 ...

  7. mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)

    mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...

  8. mysql性能优化-慢查询分析、优化索引和配置【转】

    一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connec ...

  9. mysql性能优化-慢查询分析、优化索引和配置 MySQL索引介绍

    MySQL索引介绍 聚集索引(Clustered Index)----叶子节点存放整行记录辅助索引(Secondary Index)----叶子节点存放row identifier-------Inn ...

随机推荐

  1. 14、vue-pdf的使用

    安装 npm install --save vue-pdf vue-pdf默认只显示第一页,可以写按钮翻页,也可以v-for多页显示 项目结构 实例一 按钮分页 <template> &l ...

  2. 【嵌入式硬件Esp32】ESP32 正确下载姿势

    程序的正确下载步骤,以8M flash为例子: 一.硬件连接 ESP32 的运行状态主要由 GPIO0 决定 二.ESP32 Flash 地址配置 ESP32 在编译时,通过 make menucon ...

  3. PWM原理及其在电源中的应用

    熟悉单机片的同学就应该知道pwm,也就是脉冲宽度调制技术,它是通过对一系列脉冲的宽度进行调制,来获得等效的波形.是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,因其操作简单,又灵活等 ...

  4. Mowing the Lawn【线性dp + 单调队列优化】

    题目链接:https://ac.nowcoder.com/acm/contest/2652/G 题目大意:与上一篇博客 烽火传递 差不多. 1.一共n头羊,若超过m头连续的羊在一起,就会集体罢工,每头 ...

  5. vue之$event获取当前元素的节点

    <p @click = “clickfun($event)”>点击</p> methods: { clickfun(e) { // e.target 是你当前点击的元素 // ...

  6. matlab中执行mex文件时提示GLIBCXX not found

    解决方案参考: http://stackoverflow.com/questions/8421708/glibcxx-not-found-when-compiling-vtk-example-unde ...

  7. MySQL(一)面试集合

    1. 什么是索引? 索引是一种数据结构(存储数据),可以帮助我们快速的进行数据的查找. 索引是帮助高效获取数据的数据结构,索引是一个文件   1)索引有哪些类型:          hash 二叉树 ...

  8. csdn博客整理

    @TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown ...

  9. WUSTOJ 1335: Similar Word(Java)

    题目链接:1335: Similar Word Description It was a crummy day for Lur. He failed to pass to the CET-6 (Col ...

  10. MRR,BKA,ICP相关

    MRR Multi-Range Read,多范围读,5.6以上版本开始支持 工作原理&优化效果: 将查询到的辅助索引结果放在一个缓冲(read_rnd_buffer_size = 4M)中 将 ...