/* *
- <李>
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。