日常管理03-監控MYSQL主從延時3秒指令碼;

來源:互聯網
上載者:User

標籤:json   turn   監控   print   result   ace   dump   .sql   master   

#!/bin/env python# -*- encoding: utf-8 -*-import timeimport osimport sysimport jsonimport reimport threadmysql_stat_list = []class MySQLMonitorInfo():      def __init__(self):            pass      def is_slave(self):            m = "mysql -e 'SHOW Slave status\G' "            data = os.popen(m).readlines()            if data == []:               return '',False            else:                return data,True      def stat_info(self):           data,isslave = self.is_slave()           if is slave:                Str_string = {}                for d in data[1:]:                ds = d.replace("  ","").replace("\t","").split(":")                Str_string[ds[0].strip()] = ds[1].strip()                #print Str_string                result = {                'name': '%s' % ('slave.iorun'),                'groups': "MysqlDelay3",                'value': 1 if Str_string['Slave_IO_Running'] == 'Yes' else 2,                'status': 1 if Str_string['Slave_IO_Running'] == 'Yes' else 2,                'command': sys.argv[0],                'messages': "%s %s"%('Slave_IO_Running', '正常' if Str_string['Slave_IO_Running'] == 'Yes' else "停止"),                }                mysql_stat_list.append(result)                result = {                'name': '%s' % ('slave.delay3'),                'groups': "MysqlDelay3",                'value': Str_string['Seconds_Behind_Master'],                'status': 1 if int(Str_string['Seconds_Behind_Master']) < int(sys.argv[1]) else 2,                'command': sys.argv[0],                'messages': "%s %s"%('Seconds_Behind_Master', Str_string['Seconds_Behind_Master']),                }                mysql_stat_list.append(result)                result = {                'name': '%s' % ('slave.sqlrun'),                'groups': "MysqlNew",                'value': 1 if Str_string['Slave_SQL_Running'] == 'Yes' else 2,                'status': 1 if Str_string['Slave_SQL_Running'] == 'Yes' else 2,                'command': sys.argv[0],                'messages': "%s %s"%('Slave_SQL_Running', "正常" if Str_string['Slave_SQL_Running'] == 'Yes' else "停止"),                }                return mysql_stat_list.append(result)                else:                      return {}        def get_data(host,tid):            return MySQLMonitorInfo().stat_info()       if len(sys.argv) > 4:          for host in sys.argv[1].split(","):              thread.start_new_thread(get_data, (host, 1))          else:              get_data("", "")              print json.dumps(mysql_stat_list)


日常管理03-監控MYSQL主從延時3秒指令碼;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.