Zabbix检测Mysql数据库的主从同步
在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成检测网站正常运行的重要环节。

MySQL同步功能由3个线程(master上1个,slave上2个)来实现,简单的说就是:master发送日志一个,slave接收日志一个,slave运行日志一个。
首先,我们解释一下 show slave status 中重要的几个参数:
Slave_IO_Running: I/O线程是否被启动并成功地连接到主服务器上。
Slave_SQL_Running: SQL线程是否被启动。
Seconds_Behind_Master:本字段是从属服务器“落后”多少的一个指示。当从属SQL线程正在运行时(处理更新),本字段为在主服务器上由此线程执行的最近的一个事件的时间标记开始,已经过的秒数。当此线程被从属服务器I/O线程赶上,并进入闲置状态,等待来自I/O线程的更多的事件时,本字段为零。总之,本字段测量从属服务器SQL线程和从属服务器I/O线程之间的时间差距,单位以秒计。
那么如何监控从服务器是否正常运行呢?
1、创建监控MYSQL的账号
mysql -uroot -p密码
mysql> grant replication client on *.* to 'zabbix'@'localhost';
2、写一个监控脚本
这个脚本主要用于获取MYSQL主从同步信息;
我们先执行一个命令
mysql -u zabbix -e 'show slave status\G'
我们在输出的信息中选择
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两项来监控,我测试了一下,当操作的数据出现异常的时候,Slave_SQL_Running就会变成No,当执行slave stop的时候,两个都会变成No;
脚本内容如下
#!/bin/bash
mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
我只写了一条命令,这里详细说明一下它的意思;
先用zabbix这个用户来获取slave的所有状态,然后grep出这两个状态,然后再输出第二列,最后查看有几个Yes状态的,正常情况下有两个Yes状态。
3 、 在 zabbix agent里面添加监控项
文件的最后添加如下一行
UserParameter=mysql.replication,/home/zabbix/mysql-replication.sh
等号后面的字符串中,逗号前面是Key,后面是执行的脚本(脚本不要忘了执行权限)
添加好之后,就重启agent程序
4、Server端添加监控项
zabbix_get -s 192.168.0.34 -k "mysql.replication"
2
这里的192.168.0.34 是我的agent的IP,如果主从复制正常,就会返回2 (代表两个状态都是Yes),现在就说明Server已经可以从agent获取状态了,现在在管理界面中先添加监控项:
配置 --模板
先创建一个模板,这个模板的主要功能是用于监视MYSQL主从复制的状态;

添加触发器
当返回的值小于2时,说明只存在1个YES或0个YES,这时候说明MYSQL主从同步出现异常,即产生报警;

获取最新数据

在这里可以看到,已经获取了最新的监控数据,说明监控添加成功;
Zabbix检测Mysql数据库的主从同步的更多相关文章
- mysql数据库的主从同步,实现读写分离 g
https://blog.csdn.net/qq_15092079/article/details/81672920 前言 1 分别在两台centos 7系统上安装mysql 5.7 2 master ...
- MySQL数据库的主从同步复制配置
一.主从同步机制原理 MYSQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态), ...
- mysql数据库的主从同步,实现读写分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别 ...
- MySQL数据库的主从同步
什么要进行数据库的主从同步? 防止单点故障造成的数据丢失 主从复制的原理 MySQL从数据库开启I/O线程,向主服务器发送请求数据同步(获取二进制日志) MySQL数据库开启I/O线程回应从数据库 从 ...
- MySQL数据库的主从同步实现及应用
>>主从同步机制及应用 读写分离(Read/Write Splitting)让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),从数据库处理SELECT查询操作 ...
- MySQL Replication 详解MySQL数据库设置主从同步的方法
MySQL同步的流程大致如下: 1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的IO线程从主服务器(binl ...
- mysql数据库配置主从同步
MySQL主从同步的作用 .可以作为一种备份机制,相当于热备份 .可以用来做读写分离,均衡数据库负载 MySQL主从同步的步骤 一.准备操作 .主从数据库版本一致,建议版本5.5以上 .主从数据库数据 ...
- MySQL数据库设置主从同步
MySQL主从同步的机制: MySQL同步的流程大致如下: 1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的I ...
- mysql 数据库的主从同步
1.复制准备 操作系统 centOS 主库(mysql master): ip为123.56.94.1 port为3306 mysql 版本 5.7.16 从库(mysql slave): ...
随机推荐
- 【Spark】SparkStreaming-Tasks-数量如何设置?
SparkStreaming-Tasks-数量如何设置? sparkstreaming task 数量设置_百度搜索 spark内核揭秘-14-Spark性能优化的10大问题及其解决方案 - star ...
- Introduction to Learning to Trade with Reinforcement Learning
http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/ The academic ...
- mac sierra 10.12部分注册机Special-K+CORE Keygen不能运行的问题
自从mac升级到了sierra之后,很多注册机都打不开了,于是,我想尽了很多办法之后,终于搞定. 1.国外的大神,开发了一个软件,可以修复你的破解补丁,操作方法如下: 下载软件 http://bbs. ...
- 转-为什么Lisp语言如此先进?(译文)
之前在看黑客与画家的时候看过,今天重温,完全不一样的感觉! 原文地址:http://www.ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html ...
- iOS 两个应用之间的切换
A 跳到B NSURL *urlT = [NSURL URLWithString:@"TestB://XXXXXXX"]; //注意“://”后面可以任意传参数.这些参数传过去后当 ...
- LintCode: Number of Airplanes in the Sky
C++ (1)把interval数组中的所有start和所有end放在同一个数组中,然后进行排序,遇到start就起飞一架飞机,遇到一架end就降落一架飞机,所以start有个+1属性,end有个-1 ...
- LintCode: Longest Words
C++ class Solution { public: /** * @param dictionary: a vector of strings * @return: a vector of str ...
- SQL Server时间戳
select replace(replace(replace(replace(convert(varchar ,getdate() ,126) ,'-' ,'') ,' ' ,'') ,':' ,'' ...
- 用Gearman分发PHP应用程序的工作负载
文章来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/518 虽然一个 Web 应用程序的大部分内容都与表示有关,但它的价值与竞争优势却可能体如今 ...
- nagios加入被监控的机器
此工作大约用时: 30min 准备工作, 在被监控机上 yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel 0 ...