51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Zabbix5.0监控MySQL主从同步是否异常

本文基于Centos7系统,MySQL5.7验证通过,理论适用于其他版本。

先说下思路:监控MySQL主从,是通过show slave status\G'命令查询Slave_IO_Running和Slave_SQL_Running状态是否是yes,非yes的情况下,表示主从同步存在异常然后触发zabbix警告。

本文不适用于小白,一点都不懂的不建议直接尝试!

1、在MySQL服务器上安装zabbix-agent
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum install zabbix-agent

|-----|------------------------------------------------------------------------------------------------------------------------| | 1 2 | rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum install zabbix-agent |

2、修改zabbix-agent配置文件
vi /etc/zabbix/zabbix_agentd.conf

|---|-----------------------------------| | 1 | vi /etc/zabbix/zabbix_agentd.conf |

修改Server字段为zabbix-server服务器的地址
Server=10.10.10.10

|---|--------------------| | 1 | Server=10.10.10.10 |

3、配置MySQL主从检测脚本
mkdir /etc/zabbix/script vi mysql_sync.sh mysql -uroot -pmima -e 'show slave status\G' 2>/dev/null | grep -E "Slave_IO_Running:|Slave_SQL_Running:" | awk '{print $2}' | grep -c Yes

|-------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 | mkdir /etc/zabbix/script vi mysql_sync.sh mysql -uroot -pmima -e 'show slave status\G' 2>/dev/null | grep -E "Slave_IO_Running:|Slave_SQL_Running:" | awk '{print $2}' | grep -c Yes |

因为此处使用了密码,MySQL会提示警告信息(mysql: [Warning] Using a password on the command line interface can be insecure.),所以为了避免此信息影响我们取值,我这里通过2>/dev/null进行屏蔽警告。

给予执行权限
chmod +x mysql_sync.sh

|---|------------------------| | 1 | chmod +x mysql_sync.sh |

4、添加自定义UserParameter
vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql_sync.conf

|---|--------------------------------------------------------------| | 1 | vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql_sync.conf |

内容如下
UserParameter=mysql_sync[*],/etc/zabbix/script/mysql_sync.sh

|---|-----------------------------------------------------------------| | 1 | UserParameter=mysql_sync[*],/etc/zabbix/script/mysql_sync.sh |

5、启动zabbix-agent并设置开机自启
systemctl enable zabbix-agent systemctl start zabbix-agent

|-----|------------------------------------------------------------| | 1 2 | systemctl enable zabbix-agent systemctl start zabbix-agent |

6、验证

在zabbix-server服务器执行以下命令,将10.10.10.10替换为MySQL服务器的IP
zabbix_get -s 10.10.10.10 -p 10050 -k mysql_sync

|---|--------------------------------------------------| | 1 | zabbix_get -s 10.10.10.10 -p 10050 -k mysql_sync |

7、zabbix仪表盘配置

创建主机,添加监控项

我这里自定义的键值为mysql_sync,所以在仪表盘中配置键值的时候一定也要用mysql_sync


添加触发器,当取值不等于2时,即表示主从同步有异常,则触发告警



添加图形监控,添加图形是为了更直观的看到,历史主从同步异常时间节点,以及异常的频率(非必须)


Zabbix5.0钉钉报警配置见:https://blog.whsir.com/post-6090.html

赞(0)
未经允许不得转载:工具盒子 » Zabbix5.0监控MySQL主从同步是否异常