zabbix monitor mysql (mysql多源复制)

本文介绍如何使用Zabbix监控MySQL 5.7版本的多源复制状态,具体包括修改Percona模版中的脚本get_mysql_stats_wrapper.sh,实现定时获取从库运行状态并解析缓存文件。

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

使用zabbix监控mysql多源复制中从库的状态;

环境描述:

MySQL5.7+

Zabbix版本3.0+

Percona模版:percona-zabbix-templates-1.1.7-2.noarch.rpm

更改脚本/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh,更改的内容如下:

    第19行,将mysql 更改为/usr/local/mysql/bin/mysql

    增加第20-30行代码

#!/bin/sh
# The wrapper for Cacti PHP script.
# It runs the script every 5 min. and parses the cache file on each following run.
# Version: 1.1.7
#
# This program is part of Percona Monitoring Plugins
# License: GPL License (see COPYING)
# Copyright: 2016 Percona
# Authors: Roman Vynar

ITEM=$1
HOST=192.168.0.243
DIR=`dirname $0`
CMD="/usr/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt:3306"

if [ "$ITEM" = "running-slave" ]; then
    # Check for running slave
    RES=`HOME=~zabbix /usr/local/mysql/bin/mysql --host='192.168.0.243' --user='zabbix_monitor' --password='@16nwLsgP' --port=3306 -e 'SHOW SLAVE STATUS\G' 2>/dev/null  | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
    RES=`echo $RES |sed "s/,//g"`
    status1=1
    for status in $RES
        do 
            if [ "$status" = "Yes" ];then
                status1=`expr 1 \* $status1`
            elif [ "$status" = "No" ];then
                status1=`expr 0 \* $status1`
            fi
        done
        echo $status1
#    if [ "$RES" = " Yes, Yes," ]; then
#        echo 1
#    else
#        echo 0
#    fi
    exit
elif [ -e $CACHEFILE ]; then
    # Check and run the script
    TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt:3306`
    TIMENOW=`date +%s`
    if [ `expr $TIMENOW - $TIMEFLM` -gt 300 ]; then
        rm -f $CACHEFILE
        $CMD 2>&1 > /dev/null
    fi
else
    $CMD 2>&1 > /dev/null
fi

# Parse cache file
if [ -e $CACHEFILE ]; then
    cat $CACHEFILE | sed 's/ /\n/g; s/-1/0/g'| grep $ITEM | awk -F: '{print $2}'
else
    echo "ERROR: run the command manually to investigate the problem: $CMD"
fi

检查脚本:sh get_mysql_stats_wrapper.sh running-slave

在zabbix-server端检测:/usr/local/zabbix/bin/zabbix_get -s 192.168.0.243 -p 10050 -k "MySQL.running-slave"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值