公司mysql架构为一主多从。在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警。


我们都知道使用命令“show slave status \G”可以查看mysql从的状态,下面用脚本方式检查其状态。


在mysql-slave中进入zabbix-agent目录创建脚本文件。


cat mysql_slave_status.sh
#!/bin/bash
/usr/local/mysql/bin/mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
chmod +x mysql_slave_status.sh

执行 mysql_slave_status.sh 结果为:2

如果结果不为2则表示主从同步异常,则报警!!


注意:将脚本放置到某目录(需要有权限),我这里放到/etc/zabbix/mysql_slave_status.sh 在zabbix_agentd.conf中最下方加入以下一条语句:

UserParameter=mysql.slavestatus,/etc/zabbix/mysql_slave_status.sh
#添加完成后必须重启zabbix-agentd服务
/etc/init.d/zabbix_agentd restart

之后在Zabbix-Server所在服务器执行以下语句,测试是否成功:


zabbix_get -s 192.168.1.101 -k  mysql.slavestatus

其中192.168.1.101为脚本所在服务器,mysql.slavestatus为Key值。若返回2,则表示主从服务正常。然后将该监控项在web平台测加入items,设置好报警通知即可。


使用zabbix监控mysql主从状态_zabbix


访问zabbix---找到“组态”--》“主机”--》"项目"--创建项目


使用zabbix监控mysql主从状态_主从_02


这里输入监控项名称--数据更新时间


使用zabbix监控mysql主从状态_zabbix_03


接下来创建触发器。


使用zabbix监控mysql主从状态_mysql_04


触发器内容这里注意选择数值小于 2 的时候触发报警,严重性设置为“灾难”


使用zabbix监控mysql主从状态_主从_05


至此,zabbix监控mysql主从状态完成。