公司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---找到“组态”--》“主机”--》"项目"--创建项目
这里输入监控项名称--数据更新时间
接下来创建触发器。
触发器内容这里注意选择数值小于 2 的时候触发报警,严重性设置为“灾难”
至此,zabbix监控mysql主从状态完成。