Zabbix 监控Mysql 主从状态的Python脚本

1、在被监控机(Mysql Slave端)放置检查脚本:

/usr/local/zabbix/bin/check_mysql_repl.py

#!/usr/bin/python#coding:utf-8import MySQLdb import sys class check_mysql_repl(): def __init__(self): self.dbhost = 'localhost'self.dbuser = 'root'self.dbpass = 'wisp888'self.dbport = 3306self.sock = "/data/db_misc/mysql_3306.sock"self.conn = MySQLdb.connect(unix_socket=self.sock) #根据实际情况连接self.cursor = self.conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) self.sql = 'show slave status'self.cursor.execute(self.sql) self.data = self.cursor.fetchall() self.io = self.data[0]['Slave_IO_Running'] self.sql = self.data[0]['Slave_SQL_Running'] self.conn.close() def get_io_status(self): ifself.io == 'Yes': return1else: return0def get_sql_status(self): ifself.io == 'Yes': return1else: return0if __name__ == "__main__": if len(sys.argv) != 2: print"Usage: %s [io|sql]" % sys.argv[0]         sys.exit(1)     mysql = check_mysql_repl() if sys.argv[1] == "io": print mysql.get_io_status() elif sys.argv[1] == "sql": print mysql.get_sql_status()

2、配置zabbix_agent.conf,添加Key和监控脚本:

vi /usr/local/zabbix/etc/zabbix_agentd.conf,文件最后添加以下两行:

UserParameter=mysql.repl_io,/usr/local/zabbix/bin/check_mysql_repl.py io UserParameter=mysql.repl_sql,/usr/local/zabbix/bin/check_mysql_repl.py sql

UserParameter是固定的

mysql.repl_io 是自定的Key,下面添加监控项的时候用到

/usr/local/zabbix/bin/check_mysql_repl.py io  这一段就是上面的脚本及参数

重启zabbix_agentd

3、添加监控项:

134602951.png

4、添加触发器:

134624905.png

此触发器的作用是检测到脚本的返回值不是1就会报警。


就这样一个简单的监控主从配置就完成!~~


你可能感兴趣的:(python,status,localhost,import,监控)