zabbix监控mysql主从同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix监控mysql主从同步相关的知识,希望对你有一定的参考价值。

1,部署了个mysql从数据库,需要时时监控这个从数据库的主从状态。原理的话,是通过从mysql上的zabbix执行show slave status获取
Slave_IO_Running|Slave_SQL_Running状态是否都为Yes来判断主从是否正常。
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线程之间的时间差距,单位以秒计。
那么如何监控从服务器是否正常运行呢?

2,我们可以通过一条命令来获取主从同步信息:
mysql -uzabbix -p -e ‘show slave statusG‘ |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk ‘{print $2}‘|grep -c Yes
主要获取的就是以下两个值
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

技术分享图片

3,创建个Mysql的配置文件,在zabbix_agent安装目录下,

技术分享图片
在userparameter_mysql.conf文件里添加最后一行,好处是在获取主从同步的信息时不会有在命令行上使用密码下的提示,
UserParameter=mysql.replication,HOME=/etc/zabbix/etc /usr/local/mysql/bin/mysql -e ‘show slave statusG‘ |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk ‘{print $2}‘|grep -c Yes
技术分享图片
重启agent客户端
技术分享图片
在zabbix_server端检查是否可以获取主从同步信息,
技术分享图片
用脚本方式都会有这样的提示,
技术分享图片

会导致在zabbix会报错
技术分享图片
4,在zabbix server上创建template模版
新建模版Template App MySQL Replication
Configuration|Templates|create templates,只要填写下Template name,选择下group即可
技术分享图片
在新建Template App MySQL Replication上创建Applications
技术分享图片
创建items,key那边手动填写mysql.replication
技术分享图片
创建triggers触发器,
技术分享图片
点Add,下图为该triggers触发器的Expression表达式。当获取的key值不为2时报警
技术分享图片
添加Graphs
技术分享图片
到Monitoring--Graphs查看监控图表
技术分享图片

以上是关于zabbix监控mysql主从同步的主要内容,如果未能解决你的问题,请参考以下文章

mysql主从同步延迟zabbix怎么监控

mysql主从同步延迟zabbix怎么监控

zabbix监控主从同步

zabbix监控mysql主从同步

zabbix 如何监控 mysql 主从同步 延迟差多少时间

MySQL主从同步添加至zabbix监控