使用 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



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

步骤九:定义触发器,在满足指定条件时候触发报警。
点击添加,然后选择和是的函数,和填入指定的参数,会自动生成表达式



浙公网安备 33010602011771号