您的位置:首页 > 编程语言 > Python开发

Zabbix 监控Mysql 主从状态(Python脚本)

2012-12-07 13:50 1056 查看
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就会报警。

就这样一个简单的监控主从配置就完成!~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息