1、在被监控机(Mysql Slave端)放置检查脚本:
/usr/local/zabbix/bin/check_mysql_repl.py
- #!/usr/bin/python
- #coding:utf-8
- import MySQLdb
- import sys
- class check_mysql_repl():
- def __init__(self):
- self.dbhost = 'localhost'
- self.dbuser = 'root'
- self.dbpass = 'wisp888'
- self.dbport = 3306
- self.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):
- if self.io == 'Yes':
- return 1
- else:
- return 0
- def get_sql_status(self):
- if self.io == 'Yes':
- return 1
- else:
- return 0
- if __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、添加监控项:
4、添加触发器:
此触发器的作用是检测到脚本的返回值不是1就会报警。
就这样一个简单的监控主从配置就完成!~~
本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1081562如需转载请自行联系原作者
lihuipeng