python监控mysql主从脚本_Zabbix 监控MySQL主从状态(Python脚本)

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

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

#!/usr/bin/Python

#coding:utf-8

importMySQLdb

importsys

classcheck_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()

defget_io_status(self):

ifself.io =='Yes':

return1

else:

return0

defget_sql_status(self):

ifself.io =='Yes':

return1

else:

return0

if__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.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、添加监控项:

2145229cd20c6f6376ffc5461805987e.png

4、添加触发器:

b13f8697aef568b9a893c4ef27aa4e76.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值