天天看點

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,若資料庫不同步的時候就等着收短信或者郵件吧!