【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 などでできる。
コメント