利用Python监测MySQL主从状态

探测MySQL主从状态,如果从未同步,则发邮件通知运维人员。利用定时任务秒级监测!

# -*- coding: utf-8 -*
#! /usr/bin/env python

from fabric.api import *
from fabric.colors import *
from fabric.context_managers import *
from fabric.contrib.console import confirm
import string
import smtplib

#client ip
env.port=‘9527‘
env.user=‘dyt‘
env.hosts=[‘192.168.129.138‘,‘192.168.129.139‘]
env.password=‘dyt2015‘

#env.mysql_port = ‘3306‘

@task
def check():
    slave_ip  = run("ip add|grep global")
    for ip in env.hosts:
        if ip in slave_ip:
            slave_ip = ip

    slave_io  = run("mysql -uroot -S /tmp/mysql_3306.sock -e ‘show slave status\G‘|grep Slave_IO_Running:|awk ‘{print $2}‘")
    slave_sql = run("mysql -uroot -S /tmp/mysql_3306.sock -e ‘show slave status\G‘|grep Slave_SQL_Running:|awk ‘{print $2}‘") 

    if slave_io == ‘Yes‘ and slave_sql == ‘Yes‘:
        pass
    else:
        HOST = "smtp.qq.com"
	SUBJECT = "MySQL Master-Slave Warning . "
	TO = "[email protected]"
	FROM = "[email protected]"
	text = "%-20s MySQL Master-Slave status : down" % slave_ip 
	BODY = string.join((
        "From: %s" % FROM,
        "To: %s" % TO,
        "Subject: %s" % SUBJECT ,
        "",
        text
        ), "\r\n")
	server = smtplib.SMTP()
	server.connect(HOST,"25")
	server.starttls()
	server.login("[email protected]","password")
	server.sendmail(FROM, [TO], BODY)
	server.quit()
时间: 2024-10-14 07:36:11

利用Python监测MySQL主从状态的相关文章

用Python对MySQL同步状态进行监控

用Python对MySQL同步状态进行监控 使用Python对MySQL数据库服务器是否可访问,及主从同步是否中断进行监控,是一件非常简单的事情.感谢Python给我们带来了如此简单,强大,快捷的开发环境. 本文使用到的Python模块 使用telnetlib校验服务器是否可被访问 使用SMTP向管理员发送通知邮件 使用MySQL官方的驱动对数据库进行访问 使用optparse实现命令行参数的提取 实现原理 使用optparse模块获取命令行参数.读取defaults-file设置文件内容(如果

如何实时检测mysql主从状态,并做邮件告警?

实时检测mysql主从状态,并做邮件告警 需求分析: 当我们做完主从后,主从成功的话,Slave_IO_Running和Slave_SQL_Running两个进程的状态就为yes,但是在做主从同步时也不排除,会发生一些意外的情况,所以我们需要写个脚本来实时检测Slave_IO_Running和Slave_SQL_Running的状态,一旦mysql主从状态出现了状况,就通过邮件发送告警,然后再做维护. 脚本思路: 定时检测mysql主从状态,说白的了就是通过脚本让系统去自我检测主从状态,如果是主

zabbix自定义监控mysql主从状态,并做邮件告警

 通过zabbix自定义监控mysql主从状态,并做邮件告警 分析: mysql主要是通过主从来提供安全性,一个完整的主从体系,就应该包括数据同步.开启二进制日志.全备.还有对Slave_IO_Running和Slave_SQL_Running两个线程的实时监测,并做告警,而zabbix监控软件就提供了很好的方法:对于zabbix这个监控软件,个人来说也是比较熟悉,现在的企业们都基本用的是zabbix软件来做系统的资源的监控,zabbix的强大不仅仅体现于,它自身自带的监控模板比较全面,而是通过

使用zabbix监控mysql主从状态

公司mysql架构为一主多从.在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警. 我们都知道使用命令"show slave status \G"可以查看mysql从的状态,下面用脚本方式检查其状态. 在mysql-slave中进入zabbix-agent目录创建脚本文件. cat mysql_slave_status.sh #!/bin/bash /usr/local/mysql/bin/my

pt-heartbeat监测mysql主从同步延迟

pt-heartbeat监测mysql主从同步延迟: 安装percona toolkit(pt-heartbeat为该软件的子命令): http://repo.percona.com/release/6/RPMS/x86_64/percona-toolkit-3.0.13-1.el6.x86_64.rpm yum install perl-DBD-MySQL yum install perl-IO-Socket-SSL yum install perl-TermReadKey 在主库上创建hea

python实战系列之MySQL主从状态监控(09)

1. 需求说明 由于openstack底层中MySQL使用了主从AB复制,为了监控数据库的主从状态信息,需要对MySQL的主从状态进行监控,从而保障数据库底层正常运行,为openstack提供更好的功能.本文对数据库执行监控,具体内容参考下面. 2. 程序内容 #!/usr/bin/env python #_*_ coding:utf8 _*_ #author:happyliu #用于监控MySQL主从复制状态 import os import sys import os.path import

shell监控MySQL主从状态脚本两则

内容为自己的一点总结,如有不对欢迎狠劲儿拍砖 本文来自http://yijiu.blog.51cto.com/转载请经博主同意,翻版可耻 监控主从复制正常与否 相比各位都应该知道,监控主从是否工作正常,涉及命令如下: show slave status\G; 那么,我们需要关注的参数如下: 1. 首先查看SQL和IO线程是否为YES状态(想必各位都明白了) 2. 是否有延迟 是否大于0   #一般生成环境延迟是否大于500秒,如果大于500则报警,如大于1000则严重报警 #比如传递一个sql到

Mysql主从状态监控脚本

目标:对Mysql从库进行状态监控,如果从库复制异常就告警 思路: 1.首先查找Mysql从库的4个参数值(show slave status根据这个命令):分别是从库的IO线程.SQL线程.复制延迟时间(这个在以下脚本没用到,可以再写个脚本对其延迟进行告警).错误码 2.函数Mysql_status判断,对IO线程.SQL线程.错误码三者逻辑与判断 3.如果为假则执行函数Mysql_Errno 4.对于mysql错误码为1158 1159 1008 1007 1062 我们可以进行停止slav

利用Zabbix监控mysql主从

mysql主从监控 #脚本如下,截取主从关键字 cat check_mysql_slave.sh  #!/bin/bash # declare -a 定义数组,slave_is 会被视为数组 declare -a slave_is slave_is=($(/data/mysql/bin/mysql -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running:"|awk '{print $2