找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 2437|回复: 5

nagios监控mysql集群脚本 (1)

  [复制链接]

155

主题

15

回帖

360

牛毛

一级牛人

积分
360
发表于 2011-9-28 13:24:32 | 显示全部楼层 |阅读模式 来自 河北省石家庄市
#!/usr/bin/python   #this is nagios plugin for check mysql replication # #Author lxm #   import getopt import sys import MySQLdb   def usage():     print "Usage %s [-?|--help] -h|--slavehost -u|--slaveuser -p|--slavepasswd -H|--masterhost -U|--masteruser -P|--masterpasswd [--masterport] [--slaveport]"     def getMysqlConnect(host, user, passwd, port=3306):     try:         conn = MySQLdb.connect(hosthost=host, useruser=user, passwdpasswd=passwd, portport=port)         cursor = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)         return cursor     except:         print "UNKNOWN - Can't connect %s:%s" % (host, port)         sys.exit(3)   def getMasterStatus(cursor):     try:         cursor.execute('show master status')         rs = cursor.fetchone()         cursor.close()         return rs     except:         print "UNKNOWN - Can't get master status"         sys.exit(3)   def getSlaveStatus(cursor):     try:         cursor.execute('show slave status')         rs = cursor.fetchone()         return rs         cursor.close()     except:         print "UNKNOWN - Can't get slave status"         sys.exit(3)   def do(masterhost, masteruser, masterpasswd, slavehost, slaveuser, slavepasswd, masterport=3306, slaveport=3306):     master = getMysqlConnect(masterhost, masteruser, masterpasswd, masterport)     slave = getMysqlConnect(slavehost, slaveuser,slavepasswd, slaveport)     masterrs = getMasterStatus(master)     slavers = getSlaveStatus(slave)       if(slavers['Slave_IO_Running'] != 'Yes') or (slavers['Slave_SQL_Running'] != 'Yes'):         print 'CRITICAL - Slave_IO_Running: %s\t Slave_SQL_Running:%s' % (slavers['Slave_IO_Running'], slavers['Slave_SQL_Running'])         sys.exit(2)       if(masterrs['File'] != slavers['Master_Log_File']):         print 'CRITICAL - Master binlog file is %s but slave read master log file is %s' % (masterrs['File'], slavers['Master_Log_File'])         sys.exit(2)           if(slavers['Master_Log_File'] != slavers['Relay_Master_Log_File']):         print 'WARING - Master_Log_File is %s but Relay_Master_Log_File is %s' % (slavers['Master_Log_File'], slavers['Relay_Master_Log_File'])         sys.exit(1)       if(masterrs['Position'] != slavers['Read_Master_Log_Pos']):         print 'WARING - Master binlog position is %d but slave read master log position is %d The Offset is %d' % (masterrs['Position'], slavers['Read_Master_Log_Pos'], masterrs['Position'] - slavers['Read_Master_Log_Pos'])         sys.exit(1)       if(slavers['Read_Master_Log_Pos'] != slavers['Exec_Master_Log_Pos']):         print 'WARING - Read Master Log Position is %d but Exec Master Log Position is %d The Offset is %d' % (slavers['Read_Master_Log_Pos'], slavers['Exec_Master_Log_Pos'], slavers['Read_Master_Log_Pos'] - slavers['Exec_Master_Log_Pos'])         sys.exit(1)       print "OK - mysql replication is ok"     sys.exit(0)   def main():     slavehost = slaveuser = slavepasswd = slaveport = masterhost = masteruser = masterpasswd = masterport = None     try:         opts,args =&nbs
本文由:SKF轴承 http://wwww.9-zc.com 整理发布

17

主题

806

回帖

624

牛毛

一级牛人

积分
624
发表于 2011-12-8 11:24:02 | 显示全部楼层 来自 湖南省长沙市
楼主啊  怎么都是英文啊 看不懂啊

4

主题

64

回帖

66

牛毛

初生牛犊

积分
66
发表于 2012-7-23 13:56:29 | 显示全部楼层 来自 湖北省荆州市
看帖子的要发表下看法

274

主题

-6

回帖

707

牛毛

一级牛人

[url=http://www.evisa0065.com]

积分
707
发表于 2012-8-8 13:57:04 | 显示全部楼层 来自 辽宁省沈阳市
这是什么  想不想让我么看丫?

0

主题

487

回帖

67

牛毛

初生牛犊

积分
67
发表于 2012-8-13 16:20:07 | 显示全部楼层 来自 安徽省芜湖市
我很喜欢,太精彩了

10

主题

26

回帖

12

牛毛

初生牛犊

积分
12
发表于 2015-7-12 14:16:27 | 显示全部楼层 来自 柬埔寨
不错的帖子,谢谢分享
www.333dns.com
www.sb62.info
www.99katong.com
www.z88***66.info
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-25 03:15 , Processed in 0.441085 second(s), 52 queries .

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表