【linux】MySQLのレプリケーションの監視をしたい
問題
レプリケーションをしているMySQLを監視したい。
スレーブが稼働しているか、きちんとレプリケーションできているか。

答え
何らかの監視システムが入っていて、たとえば各スレーブ側でsyslogにメッセージを出しておけば、異常に気が付く状況であるとする。
以下のようなスクリプトを定期的に実行させておけば、各サーバーでレプリケーションの状況を自分でチェックさせて、syslogにエラーを出力させることができる。
eval "`/usr/local/mysql/bin/mysql --connect_timeout=30 -u root -e 'show slave status \G' | sed -ne 's/: \(.*\)/="\1"/p' `"
# check 1: command return value
if [ $? = "0" ]
then
# check 2
if [ $Slave_IO_Running = "Yes" ]
then
# check 3
if [ $Slave_SQL_Running = "Yes" ]
then
#ok
#logger "MySQL replication ok"
else
echo "error 3"
logger "MySQL replication errpr 3"
exit 3
fi
else
echo "error 2"
logger "MySQL replication error 2"
exit 2
fi
else
echo "error 1"
logger "MySQL replication error 1"
exit 1
fi
/var/log/messages の監視は、zabbix、Xymon(hobbit)、nagios などでできる。