jlo86 发表于 2016-1-20 09:02:52

zabbix监控mysql主从

    添加主机略

    添加 脚本


使用Zabbix监控服务器的时候,用到了监控mysql的主从状态,我们知道,Mysql主从复制同步(复制)启动后,要满足以下两个条件才算是成功,即:

Slave_IO_Running: yesSlave_SQL_Running: Yes

脚本一

新建一个脚本文件,mysqlms.sh

#!/bin/bash
/usr/local/mysql/bin/mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes

将其放置到某目录(需要有权限),我这里放到/etc/zabbix/mysqlms.sh,在zabbix_agentd.conf中下方加入以下一条语句: /etc/zabbix/目录下vim /etc/zabbix/zabbix_agentd.conf

UserParameter=mysql.slavestatus,/etc/zabbix/mysqlms.sh

重启zabbix-agent:

sudo service zabbix-agent restart

截下来在Zabbix-Server所在服务器执行以下语句,测试是否成功:

zabbix_get -s 23.10.98.83 -k mysql.slavestatus

其中83为刚刚脚本所在服务器,mysql.slavestatus为Key值。若返回2,则表示主从服务正常。然后将该监控项在web平台测加入items,设置好报警通知即可。
脚本二

新建脚本mysqlms2.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()

(该脚本来自网络)打开编辑文件

vi /etc/zabbix/zabbix_agentd.conf

下方加入以下内容:

UserParameter=mysql.repl_io,/etc/zabbix/mysqlms2.py io
UserParameter=mysql.repl_sql,/etc/zabbix/mysqlms2.py sql

其他设置同脚本一。

3.创建监控项   主机-项目

4.创建触发器




页: [1]
查看完整版本: zabbix监控mysql主从