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

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

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

  
  
  
  
  1. #!/usr/bin/python

  2. #coding:utf-8

  3. import MySQLdb

  4. import sys

  5. class check_mysql_repl():

  6. def __init__(self):

  7. self.dbhost = 'localhost'

  8. self.dbuser = 'root'

  9. self.dbpass = 'wisp888'

  10. self.dbport = 3306

  11. self.sock = "/data/db_misc/mysql_3306.sock"

  12. self.conn = MySQLdb.connect(unix_socket=self.sock) #根据实际情况连接

  13. self.cursor = self.conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)

  14. self.sql = 'show slave status'

  15. self.cursor.execute(self.sql)

  16. self.data = self.cursor.fetchall()

  17. self.io = self.data[0]['Slave_IO_Running']

  18. self.sql = self.data[0]['Slave_SQL_Running']

  19. self.conn.close()

  20. def get_io_status(self):

  21. ifself.io == 'Yes':

  22. return1

  23. else:

  24. return0

  25. def get_sql_status(self):

  26. ifself.io == 'Yes':

  27. return1

  28. else:

  29. return0

  30. if __name__ == "__main__":

  31. if len(sys.argv) != 2:

  32. print"Usage: %s [io|sql]" % sys.argv[0]

  33.        sys.exit(1)

  34.    mysql = check_mysql_repl()

  35. if sys.argv[1] == "io":

  36. print mysql.get_io_status()

  37. elif sys.argv[1] == "sql":

  38. print mysql.get_sql_status()

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

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

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

  2. 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就会报警。


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

你可能感兴趣的:(zabbix,python脚本,mysql主从状态)