天天看点

mysql replication 监控_zabbix监控mysql replication

最近几天发现mysql数据库replication同步出现问题,居然过了好几天才发现,于是打算把mysql replication做监控。

我的监控平台是zabbix,之所以不使用nagios,是因为nagios比较复杂,呵呵。

大家都知道mysql的 replication复制使用了三个线程,Binlog Dump(主)、IO线程及SQL线程(从)。其中只要监控IO线程及SQL线程这两个线程就可以确定复制是否出现问题了。

复制正常情况下,Slave_IO_Running及Slave_SQL_Running都应该是Yes,见下图:

mysql replication 监控_zabbix监控mysql replication

d8e1bbdbb8f04c159efc1006e562a55e.jpg (85.72 KB, 下载次数: 18)

2012-10-24 11:44 上传

所以需要编写脚本以获取这两个值的状态。

vim /usr/local/bin/Slave_IO_Running

#!/bin/bash

Slave_IO_Running=`mysql -uroot -p'your_mysql_password' -Bse "show slave status\G"| grep Slave_IO_Running | awk '{ print $2 }'`

if [ $Slave_IO_Running == 'Yes' ] ; then

echo 1

else

echo 0

fi

chmod 755  /usr/local/bin/Slave_IO_Running

vim /usr/local/bin/Slave_SQL_Running

#!/bin/bash

Slave_SQL_Running=`mysql -uroot  -p'your_mysql_password'  -Bse "show slave status\G"| grep Slave_SQL_Running | awk '{ print $2 }'`

if [ $Slave_SQL_Running == 'Yes' ] ; then

echo 1

else

echo 0

fi

chmod 755 /usr/local/bin/Slave_SQL_Running

在zabbix agent配置文件中添加

UserParameter=mysql.alertio,Slave_IO_Running

UserParameter=mysql.alertsql,Slave_SQL_Running

打开zabbix web界面添加item

mysql replication 监控_zabbix监控mysql replication

1fa030ad9a5dd0aca8ee8def6e7a9ea8.jpg (23.14 KB, 下载次数: 13)

2012-10-24 11:44 上传

mysql replication 监控_zabbix监控mysql replication

8f85641f9787078afb2836155dc097ed.jpg (20.48 KB, 下载次数: 13)

2012-10-24 11:44 上传

也可以创建graph,太简单不写了。

接下来就是创建trigger

ok,若数据库不同步的时候就等着收短信或者邮件吧!