sele 发表于 2019-1-20 11:20:57

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

  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['Slave_IO_Running']
[*]      self.sql = self.data['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 " % sys.argv
[*]      sys.exit(1)
[*]    mysql = check_mysql_repl()
[*]    if sys.argv == "io":
[*]      print mysql.get_io_status()
[*]    elif sys.argv == "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、添加监控项:
http://blog.运维网.com/attachment/201212/134602951.png
  4、添加触发器:
http://blog.运维网.com/attachment/201212/134624905.png
  此触发器的作用是检测到脚本的返回值不是1就会报警。
  就这样一个简单的监控主从配置就完成!~~



页: [1]
查看完整版本: Zabbix 监控Mysql 主从状态(Python脚本)