Zabbix监控mysql Master Slave主从同步(复制)状态,附脚本
2015-08-12 10:43
841 查看
使用Zabbix监控服务器的时候,用到了监控mysql的主从状态,我们知道,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中下方加入以下一条语句:
UserParameter=mysql.slavestatus,/etc/zabbix/mysqlms.sh重启zabbix-agent:
sudo service zabbix-agent restart截下来在Zabbix-Server所在服务器执行以下语句,测试是否成功:
zabbix_get -s 192.168.1.106 -k mysql.slavestatus其中192.168.1.106为刚刚脚本所在服务器,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[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()(该脚本来自网络)打开编辑文件
vi /etc/zabbix/zabbix_agentd.conf下方加入以下内容:
UserParameter=mysql.repl_io,/etc/zabbix/mysqlms2.py io UserParameter=mysql.repl_sql,/etc/zabbix/mysqlms2.py sql其他设置同脚本一。
完。
相关文章推荐
- 64位win7 pl/sql developer连接linux oracle11g服务端
- 探讨Mysql中OPTIMIZE TABLE的作用详解
- mysql:Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
- 一步一步跟我学习hadoop(7)----hadoop连接mysql数据库执行数据读写数据库操作
- tpcc-mysql测试mysql5.6 (xfs文件系统)
- SQL 维护计划
- win764bit系统plsqldeveloper11连接oracle11g64bit配置方法
- Linux运维 第四阶段 (五)MySQL用户和权限管理、日志管理
- SQLMap Pangolin环境搭建
- SQL truncate 、delete与drop区别
- SQL truncate 、delete与drop区别
- 安装SQL SERVER 2016 CTP (二)[多图]
- MySQL性能调优与架构设计——第7章 MySQL数据库锁定机制
- SqlBulkCopy导入数据(自增列保留原值)
- NoSQL架构实践(一)——以NoSQL为辅
- Linux运维 第四阶段 (四) MySQL锁、事务
- Linux运维 第四阶段 (三) MySQL的SQL语句
- 高性能Mysql主从架构的复制原理及配置详解
- Linux运维 第四阶段 (二) MySQL命令、数据类型、变量
- 第五篇 SQL Server安全架构和安全