大神教你自动发现监控mysql从库状态

本文介绍如何利用Zabbix监控MySQL从库的状态,确保数据同步的完整性和及时性。通过配置自动发现规则及监控项原型,监测SlaveSQLRunning、SlaveIORunning及SecondsBehindMaster等关键指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读zabbix从库如果复制有问题,在主库机器有问题的时候,切为主就会导致数据的丢失。或者主从分离的时候,如果从库出现延时状态的话,会导致前端页面展示的数据不是为最新的数据。因此,监控mysql从库的状态是必要的。

mysql从库的状态主要监控的值有三个,分别为Slave SQL Running,Slave IO Running和Seconds Behind Master。只有当Slave SQL Running,Slave IO Running为yes,然后Seconds Behind Master为0的时候,从库才有可能运行在正常的状态下(有时候这三个值都符合要求,从库数据也会有问题)。先看下监控的效果:

大神教你自动发现监控mysql从库状态大神教你自动发现监控mysql从库状态

由于是自动发现监控的mysql从库状态,因此,先贴下自动发现规则的配置,使用mysql.slave.discover去获取mysql从库的端口,在从库安装zabbix agentd,并添加配置(UserParameter=mysql.slave.discover,python /usr/local/zabbix/discover_mysql_slave.py):

大神教你自动发现监控mysql从库状态大神教你自动发现监控mysql从库状态

其中,自动发现mysql端口的python脚本见:https://my.oschina.net/zhuangweihong/blog/785919 此文章有类似的脚本。自动发现完mysql的端口后,使用的探测项目原型如下,使用三个原型去获取mysql从库的三个需要监控的值:

大神教你自动发现监控mysql从库状态大神教你自动发现监控mysql从库状态

其中获取的键值需要在从库agent中添加配置,然后重启agentd:

UserParameter=mysql.slave.status[*],sh /usr/local/zabbix/check_mysql_slave.sh -u xxx-p xxx -P $1 -k $2 2>/dev/null

最后就看下/usr/local/zabbix/check_mysql_slave.sh脚本,如下:

#!/bin/sh
while getopts "u:p:P:k:" opt
do
        case $opt in
                u ) user=$OPTARG;;
                p ) password=$OPTARG;;
                P ) port=$OPTARG;;
                k ) key=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${user}" ] || [ ! "${password}" ] || [ ! "${port}" ] || [ ! "${key}" ];then
        echo "parameter is null"        
        exit 1
fi

mysql -u ${user} -p${password} -h 127.0.0.1 -P${port} -e "show slave status\G"|grep "${key}\:"|awk '{pr

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:https://www.linuxprobe.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值