使用 ZABBIX 6.0 监控 MySQL 主从复制架构状态

步骤一:搭建 MySQL 主从复制环境

该步骤省略

步骤二:部署 ZABBIX Server ,并在MySQL主从节点上安装 zabbix agent

该步骤省略

步骤三:编写 MySQL 主从复制状态监测脚本 mysql_replication_check.sh

获取MySQL主从复制状态
#!/bin/bash

HOST=127.0.0.1
USER=root
PASS=eHIGH2014
PORT=3306
SLAVE_INFO=$(mysql -h${HOST} -u${USER} -p${PASS} -P${PORT} -e "SHOW SLAVE STATUS\G" 2> /dev/null)

# 如果不是从库,SHOW SLAVE STATUS 返回空
if [[ -z "$SLAVE_INFO" ]]; then
    echo "NO_SLAVE"
    exit 0
fi

# 提取字段
IO=$(echo "$SLAVE_INFO" | awk -F': ' '/Slave_IO_Running:/ {print $2}')
SQL=$(echo "$SLAVE_INFO" | awk -F': ' '/Slave_SQL_Running:/ {print $2}')
DELAY=$(echo "$SLAVE_INFO" | awk -F': ' '/Seconds_Behind_Master:/ {print $2}')

case "$1" in
    io )
        # 输出 Yes / No
        echo "$IO"
        ;;
    sql)
        echo "$SQL"
        ;;
    delay)
        # NULL 是字符串,说明延迟未知
        if [[ "$DELAY" == "NULL" ]]; then
            echo -1
        else
            echo "$DELAY"
        fi
        ;;
    *)
        echo "Usage: $0 {io|sql|delay}"
        exit 1
        ;;
esac

步骤四:启用zabbix agent 的自定义监控功能

因为我是直接采用提供的软件源安装的,所以默认路径是:/etc/zabbix/zabbix_agentd.conf


步骤五:在 Include 指定的路径下编写子配置文件,子配置文件格式是:自定义的key,执行脚本路径

sudo vim /etc/zabbix/zabbix_agentd.d/mysql_slave.conf

UserParameter=mysql.slave.io,/etc/zabbix/zabbix_agentd.d/check_mysql_slave.sh io
UserParameter=mysql.slave.sql,/etc/zabbix/zabbix_agentd.d/check_mysql_slave.sh sql
UserParameter=mysql.slave.delay,/etc/zabbix/zabbix_agentd.d/check_mysql_slave.sh delay

步骤六:重启zabbix agent

sudo systemctl restart zabbix-agent.service

步骤七:在 zabbix server 上添加监控项,对应的key为在mysql_slave.conf 中使用UserParameter指定的自定义key

  • 类型选 “Zabbix agent(主动/被动都行)”
  • key 填你自定义的 key



步骤八:此时就可以在监测-最新数据里面查看到获取到的数据信息乐


步骤九:定义触发器,在满足指定条件时候触发报警。

点击添加,然后选择和是的函数,和填入指定的参数,会自动生成表达式



posted on 2025-12-19 10:12  一直小爪子  阅读(1)  评论(0)    收藏  举报