python脚本 监控MySQL slave 状态

#!/usr/bin/python
#!gbk

import os
import sys

mysqlbase = ‘/usr/bin/mysql‘
host = ‘ip‘
user = ‘root‘
passw = ‘xxxxxx‘
info = os.popen(mysqlbase+‘ -h %s -u%s -p%s -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running|Seconds_Behind_Master|Master_Log_File|Read_Master_Log_Pos|Relay_Master_Log_File|Exec_Master_Log_Pos"‘ %(host,user,passw)).read()
info_list = info.split()
info_tup = {}
js = 0
_idx = 0
pd = len(info_list) / 2
for idx,item in enumerate(info_list):
js += 1
if js > pd:
continue
info_tup[info_list[_idx]] = info_list[_idx+1]
_idx += 2
if len(sys.argv) == 1:
print(‘your can insert python + pyname + Seconds_Behind_Master or file_pos or io_sql‘)
elif sys.argv[1] == ‘Seconds_Behind_Master‘:
if info_tup[‘Seconds_Behind_Master:‘] == ‘0‘:
print(0)
else:print(info_tup[‘Seconds_Behind_Master:‘])
elif sys.argv[1] == ‘file_pos‘:
if info_tup[‘Master_Log_File:‘] == info_tup[‘Relay_Master_Log_File:‘] and info_tup[‘Read_Master_Log_Pos:‘] == info_tup[‘Exec_Master_Log_Pos:‘]:
print(0)
else:print(5)
elif sys.argv[1] == ‘io_sql‘:
if info_tup[‘Slave_IO_Running:‘] == ‘Yes‘ or info_tup[‘Slave_SQL_Running:‘] == ‘Yes‘:
print(0)
else:print(5)

原文地址:https://www.cnblogs.com/hmysql/p/9057456.html

时间: 2024-10-08 20:57:17

python脚本 监控MySQL slave 状态的相关文章

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

使用python脚本实现mysql误操作的flush back

1.简介在oracle数据库中,当一个误操作被提交后,我们可以通过oracle提供的闪回功能将表闪回至误操作之前的状态.在mysql中没有原生的flush back功能,DBA误操作时,传统的恢复方式是利用全备+二进制日志前滚进行恢复.今天给大家介绍一种使用python脚本在mysql中实现类似oracle中flush back table的闪回功能,相比于传统的全备+增备,本方法更为快速.简单. 2.闪回原理原理:调用mysql_rollback.py(脚本在我的另一篇blog 闪回脚本:my

MySQL slave状态之Seconds_Behind_Master

在MySQL的主从环境中,我们能够通过在slave上运行show slave status来查看slave的一些状态信息,当中有一个比較重要的參数Seconds_Behind_Master.那么你是否明确它的真正含义以及它是怎么计算的呢? 在之前我一直误以为Seconds_Behind_Master是表示slave比master落后多少,假设这个值为0的表示主从已经处于一致了(在非同步模式下,如今官方最多也仅仅在5.5中添加?了半同步复制).可是近期我最终认识到之前的错误理解.首先我们须要明确的

Linux下shell脚本监控Tomcat的状态并实现自动启动

最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤. 1.编写Shell脚本monitor.sh #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作# author:EagleHao# date:2018-04-08# DEFINE # 获取tomcat进程ID(其中[grep

zabbix应用-监控mysql slave 主从状态

线上服务的监控已经基本搞定了,现在就剩下mysql 主从的状态没有检测,这里要想用zabbix 监控,还得写一个获取主从状态的脚本,然后设置一个key,创建模板套用这个key 获取mysql 的主从状态是否正常. 1.这里把我的脚本贴一下,脚本要给可执行权限 #!/bin/bash user=zabbixagent passwd=zabbixagent port=$1 #自定义函数 function status {    status=`/data/mysql_root/mysql/bin/m

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

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

编写脚本实现MySQL主从复制状态监控

生产实战案例:监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒实现检测一次.阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误.阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) 解答: #!/bin/sh # No1 define variables array=(1158 1159 1008 1007 1062) Da

Zabbix自定义监控MySQL性能状态

环境是CentOS 6.5 x86_64系统 Zabbix版本:3.0.4 MySQL Server 版本:5.6.29 二进制安装 zabbix_agentd.conf的配置文件如下: [[email protected] alertscripts]# cat  /usr/local/zabbix/etc/zabbix_agentd.conf | grep -v '^#' | grep -v '^$'LogFile=/tmp/zabbix_agentd.logEnableRemoteComma