mysql监控报警工具

#!/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‘: ["[email protected] ", ], ‘tianyi‘: ["[email protected]", "[email protected]", ]}

#对发送邮件的格式的配置
def sendmail(mail_list, sql):
    for number in range(len(mail_list)):
        params[‘apiUser‘] = "xxx"
        params[‘apiKey‘] = "0Mxb0ag"
        params[‘from‘] = "[email protected]"
        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‘: ["[email protected] ", ], ‘tianyi‘: ["[email protected]", "[email protected]", ]}
#使用的相关的sendcloud api配置:sendmail()

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

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

时间: 2024-10-30 02:15:29

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

mysql监控管理工具–innotop

INNOTOP是一个通过文本模式显示MySQL和InnoDB的监测工具.INNOTOP是用PERL语言写成的,这使它能更加灵活的使用在各种操作平台之上,它能详细的的监控出当前MYSQL和INNODB运行的状态,以DBA根据结果,可以合理的优化MYSQL,让MYSQL更稳定更高效的运行.   1.innotop安装 安装INNOTOP工具非常简单,其是由PERL写的,当然需要PERL环境和相关的工具包.在安装之前先要确定你的系统安装了Time::HiRes,Term::ReadKey,DBI,DB

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

一.智能运维监控报警平台的组成 随着大数据时代的来临,运维工作的难度越来越大,每个运维人员都要面临不计其数的服务器和海量的数据,如何保证众多服务器和业务系统稳定高效地运行并尽量减少死机时间,成为考核运维工作的重要指标,而要实现大规模的运维,必须要有一套行之有效的智能运维监控管理系统,本章就详细介绍下如何构建一套完善的运维监控报警平台. 运维的核心工作可以分为运行监控和故障处理两个方面,对业务系统进行精确.完善的监控,保证能够在第一时间发现故障并迅速通知运维人员处理故障是运维监控系统要实现的基础功

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

MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性能分析.监控预警.容量扩展议题越来越多.“工欲善其 事,必先利其器”,那么我们如何在进行MySQL性能分析.监控预警.容量扩展问题上得到更好的解决方案,就要利用各种工具来对MySQL各种指标进行分 析.本文是读书笔记,下面提及的工具,读者可能都用过,或打算准备是使用.MySQL服务器的发布包没有包含那些能完成许多常见任务的工具,例如监控服务器的工具.比较服务器间数据的工具.我们把这些工具分成以下几类:界面.监

zabbix监控mysql以及报警(二)终

Zabbix部署 监控数据库 报警服务(二) 终 接着zabbix(一)接着部署 配置过一段时间后,观察下监控图效果出来了没 zabbix3.0 server已自带mysql的模板了,只需配置好agent客户端,然后在web端给主机增加模板就行了. Zabbix_agent客户端操作(1)首先在客户端的mysql里添加权限,即本机使用zabbix账号连接本地的mysql mysql> grant all on *.* to [email protected]'localhost' identif

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

第 18 章 高可用设计之 MySQL 监控 前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一个系统,无论如何设计如何维护,都无法完全避免出现异常的可能,监控系统就是根据系统的各项状态的分析,让我们能够尽可能多的提前预知系统可能会出现的异常状况.即使没有及时发现将要发生的异常,也要在异常出现后的第一时间知道系统已经出现异常,否则之前的设计工作很可能就白费了. 18.1 监控系统设计 系统监控

MySQL Binlog 解析工具 Maxwell 详解

maxwell 简介 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Google Cloud Pub/Sub.文件或其它平台的应用程序.它的常见应用场景有ETL.维护缓存.收集表级别的dml指标.增量到搜索引擎.数据分区迁移.切库binlog回滚方案等.官网(http://maxwells-daemon.io).GitHub(https://github.com/zende

Python-WXPY实现微信监控报警

概述: 本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序.博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的将工作和学习联系在一起. 博文中主要使用到的技术设计到Python,Redis,以及Java.涉及到的技术看似很多,但是主要的语言是基于Python进行开发的. 架构涉及主要采用了 生产者消费者的涉及模式,使用Redis作为消息队列进行解耦操作. 主要架构涉及如下: 接下来开始介绍一下程序的实现过程,主要讲解wxpy -> python.re

合nagios+cacti+微信、飞信实现网络监控报警

系统环境:rhel6.3         selinux disabled  和 iptables     整合cacti和nagios是利用了cacti的一个插件nagiosfor cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来. 一.nagios监控本地主机 注释掉localhost.cfg,新增加hosts.cfg,services.cfg [[email protected]

第23章 mysql 监控

2015-10-25 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] mysql常用监控脚本命令整理 [4] MySQL监控应该知道的九件事 [5] MySQL Enterprise Monitor [6] ZABBIX监控MYSQL [7] MySQL InnoDB监控 [8] mysql性能监控指标 [9] MyS