Percona PT-kill重构版(PHP)

  


/* *

<李>

Percona PT-kill重构版(PHP)

<李> https://github.com/hcymysql/pt-kill

<李>


<李>

更新:

<李>

修改:hcymysql 2018/11/27

<李>

1,增加慢SQL邮件报警功能

<李>

2,增加慢SQL微信报警功能

<李>


<李>

环境准备:

<李>

shell>yum安装php - y php进程php mysql

<李>


*/


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


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


用法:

选项:

- u,用户名

- p,密码

- h,主机ip

- p,港口

- b, busytime时间秒设置慢SQL执行时间触发报警

我,间隔时间秒设置守护进程下间隔监测时间

——杀死如果想杀掉慢查询,加上该选项。

——match-info匹配杀掉选择|插入|更新语句

——满足用户匹配杀掉的用户

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

——邮件开启发送邮件报警

——weixin开启发送微信报警

——帮助,帮助


例子:

前台运行

shell>php pt-kill。php - u admin - p 123456 - h 10.10.159.31 - p 3306   10 - b,——match-info=& # 39;选择|改变# 39;——满足用户=& # 39;dev # 39;——杀——邮件   ——weixin


后台运行

shell>php pt-kill。php - u admin - p 123456 - h 10.10.159.31 - p 3306   10 - b,我15——match-info=& # 39;选择|改变# 39;——满足用户=& # 39;dev # 39;——杀死   ——邮件——weixin——守护进程1


关闭后台运行

shell>php pt-kill。php,守护进程0


以上是工具的使用方法和参数选项。   这里说下比较重要的参数:

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


2——match-info可以单独使用,也可以和,满足用户结合一起使用;


3,守护进程1是开启后台守护进程,如果不添加该选择,可以用系统的crontab代替。   该选项要和我10(秒)配合一起使用,即每休眠10秒监控一次0为关闭后台守护进程。


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

smtp_config.php

& lt; ? php

,,,$内容=nl2br (file_get_contents(目录名(__FILE__) # 39;公司/kill.txt& # 39;));
,,,require_once“Smtp.class.php"

,,,//* * * * * * * * * * * * * * * * * * * *配置信息* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
,,,$ smtpserver=皊mtp.126.com"//SMTP服务器
,,,smtpserverport=25美元;//SMTP服务器端口
,,,$ smtpusermail=癱hunyang_he@126.com"//SMTP服务器的用户邮箱
,,,$ smtpemailto=& # 39; chunyang_he@126.com& # 39;;//发送给谁
,,,$ smtpuser=癱hunyang_he@126.com"//SMTP服务器的用户帐号,注:部分邮箱只需@前面的用户名
,,,$ smtppass=?23456“//SMTP服务器的授权码
,,,$ mailtitle=熬?出现卡顿慢SQL,请及时优化处理!“;//邮件主题
,,,$ mailcontent=? lt; h2>“。美元干净自己的内容& lt;/h2>“;//邮件内容
,,,$ mailtype=癏TML"//邮件格式(HTML/TXT),三种为文本邮件
,,,//* * * * * * * * * * * * * * * * * * * * * * * *配置信息* * * * * * * * * * * * * * * * * * * * * * * * * * * *

?在


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

shell>焦油zxvf simplejson-3.8.2.tar.gz

shell>cd simplejson-3.8.2

shell>python的设置。py构建

shell>python的设置。py安装

然后编辑pt-kill.php脚本   找到   $ status1=系统(“/usr/bin/python,微信。py, & # 39; hcymysql& # 39;{$ row [& # 39; db # 39;]}库出现卡顿慢SQL ! & # 39; {$ content1} & # 39;“);   将其& # 39;hcymysql& # 39;我的微信号换成你自己的即可。

微信企业号设置   移步https://www.cnblogs.com/linuxprobe/p/5717776.html看此教程配置。


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

Percona PT-kill重构版(PHP)