dba+工具:PT-kill重构版,慢SQL报警及扼杀利器(可下载)

Posted DBAplus社群

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dba+工具:PT-kill重构版,慢SQL报警及扼杀利器(可下载)相关的知识,希望对你有一定的参考价值。


工具研发者介绍

贺春旸凡普金科DBA团队负责人,《mysql管理之道:性能调优、高可用与监控》第一、二版作者,曾任职于中国移动飞信、安卓机锋网。致力于MariaDB、MongoDB等开源技术的研究,主要负责数据库性能调优、监控和架构设计。

工具下载:点击文末【阅读原文】或登录云盘https://pan.baidu.com/s/1dDJfkRMKn3zwDlVvHqnLdA


/**

 * Percona PT-kill重构版(php)

 * https://github.com/hcymysql/pt-kill

 *

 * UPDATE:

 * Modified by: hcymysql 2018/11/27

 * 1、增加慢SQL邮件报警功能

 * 2、增加慢SQL微信报警功能

 *

 * 环境准备: 

 * shell> yum install -y php-process php php-mysql

 *  

 */


概述


原生Percona版PT-kill(Perl)工具只是单纯地KILL掉正在运行中的慢SQL,而不能作为一个监控工具使用,例如缺少邮件报警或者微信报警功能,固需要将其重构。


重构版PT-kill(PHP)从information_schema.PROCESSLIST表中捕获正在运行中的SELECT|ALTER等DML/DDL消耗资源过多的查询,过滤它们,然后杀死它们(可选择不杀),并且发邮件/微信报警给DBA和相关开发知悉,避免因慢SQL执行时间过长对数据库造成一定程度的伤害。(注:慢SQL执行完才记录到slow.log里,执行过程中不记录。)


使用方法和参数选项


Usage:


 Options:


  -u  username

  -p  password

  -h  host ip

  -P  port

  -B  busytime time seconds 设置慢SQL执行时间触发报警

  -I  interval time seconds 设置守护进程下间隔监测时间

  --kill 如果想杀掉慢查询,加上该选项。

  --match-info 匹配杀掉SELECT|INSERT|UPDATE语句

  --match-user 匹配杀掉的用户

  --daemon 1开启后台守护进程,0关闭后台守护进程

  --mail 开启发送邮件报警

  --weixin 开启发送微信报警

  --help  Help


Example:


   前台运行

   shell> php pt-kill.php -u admin -p 123456 -h 10.10.159.31 -P 3306 -B 10  --match-info='select|alter' --match-user='dev' --kill --mail --weixin


   后台运行

   shell> php pt-kill.php -u admin -p 123456 -h 10.10.159.31 -P 3306 -B 10  -I 15 --match-info='select|alter' --match-user='dev' --kill --mail --weixin --daemon 1

       

   关闭后台运行

   shell> php pt-kill.php --daemon 0


以上是工具的使用方法和参数选项。


重要参数


这里说下比较重要的参数:


1、--kill 如果想杀掉慢查询,那么在后面添加该选项;


2、--match-info 可以单独使用,也可以和--match-user结合一起使用;


3、--daemon 1 是开启后台守护进程,如果不添加该选择,可以用系统的crontab代替。


该选项要和-I 10(秒)配合一起使用,即每休眠10秒监控一次。0为关闭后台守护进程。


4、--mail 为开启发送邮件报警,需先设置smtp_config.php,改成你自己的邮箱账号信息


dba+工具:PT-kill重构版,慢SQL报警及扼杀利器(可下载)


5、--weixin 为开启发送微信报警,需要先安装下simplejson-3.8.2.tar.gz


dba+工具:PT-kill重构版,慢SQL报警及扼杀利器(可下载)


然后编辑pt-kill.php脚本,找到


$status1 = system("/usr/bin/python  wechat.py  'hcymysql' {$row['DB']}库出现卡顿慢SQL! '{$content1}'");



  • 微信企业号设置

移步 www.cnblogs.com/linuxprobe/p/5717776.html

可看此教程配置。


6、会在工具目录下生成kill.txt文件保存慢SQL。


shell> cat kill.txt

2018-11-27 16:41:22

用户名:root

来源IP:localhost

数据库名:hcy

执行时间:18

SQL语句:select sleep(60)


7、默认只杀连接中的慢SQL,保留会话连接,如果想把连接也杀掉,去掉QUERY


修改pt-kill.php


//$kill_sql = "KILL QUERY {$row['ID']}"; 

$kill_sql = "KILL {$row['ID']}";


具体演示请查看云盘链接内的“pt_kill演示录像.avi”。


下载方式


点击文末【阅读原文】或登录云盘链接:

https://pan.baidu.com/s/1dDJfkRMKn3zwDlVvHqnLdA

即可下载工具脚本


现通过dbaplus社群免费为大家提供Percona PT-kill重构版(PHP)的下载使用。若使用过程中有任何问题或建议,可随时与我们联系,欢迎大家试用!


相关链接:


更多免费工具&脚本


详情及下载:http://dbaplus.cn/list-142-1.html


- 近期活动 -

2018 Gdevops全球敏捷运维峰会广州站

  • 聚焦AIOps:BAT、360、美图等名企大佬齐聚,携最新智能运维实践亮相;

  • 运维多面观:覆盖银行、证券等传统行业的DevOps、可视化、安全建设等;

  • 数据库专场:腾讯、蚂蚁金服、美团点评、PingCAP、巨杉、润乾等一线专家畅谈数据库管理、优化与改造;

  • 沉浸式学习:深度课程系统教学,玩转DevOps工具栈;

  • 年度颁奖礼:共同见证2018年度十大MVP、最佳产品奖的隆重揭晓!


↓↓↓点这里下载Percona PT-kill重构版(PHP)

以上是关于dba+工具:PT-kill重构版,慢SQL报警及扼杀利器(可下载)的主要内容,如果未能解决你的问题,请参考以下文章

dba+工具:pt-archiver重构版,轻松搞定大表数据归档

MySQL数据库CPU飙升紧急处理方法

dba+开源工具:图形化显示MySQL慢日志

mysql慢sql报警系统

使用AI优化慢SQL,开发秒变DBA

69慢sql报警,每年“花”273.75元到2737.5元(应该算多了)