阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

25次阅读
没有评论

共计 1194 个字符,预计需要花费 3 分钟才能阅读完成。

导读 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.slave.discover 去获取 mysql 从库的端口,在从库安装 zabbix agentd,并添加配置(UserParameter=mysql.slave.discover,python /usr/local/zabbix/discover_mysql_slave.py):

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

其中,自动发现 mysql 端口的 python 脚本见:https://my.oschina.net/zhuangweihong/blog/785919 此文章有类似的脚本。自动发现完 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

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-08-13发表,共计1194字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中