1、在被监控机(Mysql Slave端)放置检查脚本:
/usr/local/zabbix/bin/check_mysql_repl.py
#!/usr/bin/python#coding:utf-8importMySQLdbimportsysclasscheck_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='showslavestatus'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()defget_io_status(self):ifself.io=='Yes':return1else:return0defget_sql_status(self):ifself.io=='Yes':return1else:return0if__name__=="__main__":iflen(sys.argv)!=2:print"Usage:%s[io|sql]"%sys.argv[0]sys.exit(1)mysql=check_mysql_repl()ifsys.argv[1]=="io":printmysql.get_io_status()elifsys.argv[1]=="sql":printmysql.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.pyioUserParameter=mysql.repl_sql,/usr/local/zabbix/bin/check_mysql_repl.pysql
UserParameter是固定的
mysql.repl_io 是自定的Key,下面添加监控项的时候用到
/usr/local/zabbix/bin/check_mysql_repl.py io 这一段就是上面的脚本及参数
重启zabbix_agentd
3、添加监控项:
4、添加触发器:
此触发器的作用是检测到脚本的返回值不是1就会报警。
就这样一个简单的监控主从配置就完成!~~
如果觉得《Zabbix 监控Mysql 主从状态(Python脚本)》对你有帮助,请点赞、收藏,并留下你的观点哦!