#!/usr/bin/env python
# coding:utf-8 import MySQLdb
import requests, json
import time url = "http://api.sendcloud.net/apiv2/mail/send" key = {}
params = {}
#目标用户的邮箱
to_email = {'root': ["xxxx@xxx.com ", ], 'tianyi': ["x@qq.com", "x@sina.com", ]} #对发送邮件的格式的配置
def sendmail(mail_list, sql):
for number in range(len(mail_list)):
params['apiUser'] = "xxx"
params['apiKey'] = "0Mxb0ag"
params['from'] = "x@foxmail.com"
params['fromName'] = "bill"
params['subject'] = "warning"
params['html'] = "your sqlserver is dangerous: " + sql
params['to'] = mail_list[number]
r = requests.post(url, files={}, data=params)
print r.text
time.sleep(1) if __name__ == "__main__":
while True:
#配置数据库,root用户可以看见所有用户的线程
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='x')
cur = conn.cursor()
reCount = cur.execute('show processlist;') for i in cur.fetchall():
print i # 判断对用户的操作
number = 0
#i[4]对应的是Command,i[5]是Time,当sql语句处于执行的状态,并且时间大于1秒的时候
if i[4] == 'Query' and i[5] >= 1:
while number < i[5]:
# 发送邮件
sendmail(to_email[i[1]], str(i[7]))
number = number + 1
# 如果此时大于5秒就杀死进程
if number == 4:
id = str(i[0])
print id
sql = 'kill ' + id + ';'
cur.execute(sql)
break
time.sleep(1) cur.close()
conn.close()
time.sleep(1) #配置说明
#修改所处mysql服务器的连接信息: conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='x')
#所拥有用户及其对应的邮箱地址:to_email = {'root': ["x@xx.com ", ], 'tianyi': ["x@qq.com", "x@sina.com", ]}
#使用的相关的sendcloud api配置:sendmail()

参考资料:https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html

     http://www.linuxidc.com/Linux/2016-02/128558.htm

mysql监控报警工具的更多相关文章

  1. mysql监控管理工具--innotop

    https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/innotop/innotop-1.9. ...

  2. Ganglia与Centreon整合构建智能化监控报警平台

    一.智能运维监控报警平台的组成 随着大数据时代的来临,运维工作的难度越来越大,每个运维人员都要面临不计其数的服务器和海量的数据,如何保证众多服务器和业务系统稳定高效地运行并尽量减少死机时间,成为考核运 ...

  3. 【Linux】Zabbix + MPM + msmtp + mutt 监控MySQL + 邮件报警

    Zabbix部署参考博文 http://blog.sina.com.cn/s/blog_5611597901017oe0.html  MPM安装配置参考博文和MPM官网下载地址 http://blog ...

  4. MySQL监控、性能分析——工具篇

    https://blog.csdn.net/leamonjxl/article/details/6431444 MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性 ...

  5. MySQL监控、性能分析——工具篇(转载)

    MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性能分析.监控预警.容量扩展议题越来越多.“工欲善其事,必先利其器”,那么我们如何在进行MySQL性能分析.监控预 ...

  6. Linux下Zabbix5.0 LTS添加MySQL监控,实现邮件报警并执行预处理操作

    依据前文:Linux下Zabbix5.0 LTS监控基础原理及安装部署(图文教程) 环境,继续添加MySQL应用集. 第一部分:添加Zabbix自带的MySQL应用集. 在ZabbixClient-0 ...

  7. Kubernetes集群的监控报警策略最佳实践

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/79652064 本文为Kub ...

  8. MySQL Binlog 解析工具 Maxwell 详解

    maxwell 简介 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Goog ...

  9. MySQL性能调优与架构设计——第 18 章 高可用设计之 MySQL 监控

    第 18 章 高可用设计之 MySQL 监控 前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一 ...

随机推荐

  1. C扩展php的方法(制作php扩展库)

    用PHP调用C扩展整个配置过程在CentOS下   今天终于把C扩展加入到PHP中了,并且可以调用,废话就不说了,看下文.   一.必须先要安装Apache和mysql,这两个的安装过程我就不说了. ...

  2. JavaScript越来越简单啦啦啦

    我正在对需要从远程API提取并对页面的各个部分进行更改的页面进行更改.听起来像是抽出jQuery和Ajax的时候了,不是吗?相反,我只是使用了老式的JavaScript.实际上,我使用了新的JavaS ...

  3. 当input被选中时候获取改input的多个属性值

    <input name="selectTicket" class="selectTic" data-property="${couponDeta ...

  4. db2 reorg pending

    通常在数据库上线之前,我们都会对数据库做周密的规划,无论在测试阶段还是上线之初,也难免由于需求的更改会对数据中的表做一些更改.而某些alter table语句则会导致该表处于reorg-pending ...

  5. ios 页面过长卡顿的情况

    解决方案如下: -webkit-overflow-scrolling: touch;

  6. Hadoop1的安装

    目前hadoop1的稳定版本是1.2.1,我们以版本1.2.1为例详细的介绍hadoop1的安装,此过程包括OS安装与配置,JDK的安装,用户和组的配置,这些过程在hadoop2也有可能用到. Had ...

  7. Projects\image_match3图像特征匹配调试记录

    D:\文件及下载相关\文档\Visual Studio \Projects\image_match3\image_match #include "opencv2/core/core.hpp& ...

  8. node.js中的事件循环机制

    http://www.cnblogs.com/dolphinX/p/3475090.html

  9. Charlse 抓包

    下载Charlse:https://www.charlesproxy.com/ 安装使用: https://www.cnblogs.com/ceshijiagoushi/p/6812493.html ...

  10. iOS-项目archive错误Code Sign error: No matching provisioning profile found: Your build settings UUID:

    解决办法: 1.关闭项目 2.打开xprojiect右键 打开包文件 3.搜索:PROVISIONING_PROFILE 相关删除了