SOFTELメモ

Softel Inc.

【linux】MySQLのレプリケーションの監視をしたい

問題

レプリケーションをしているMySQLを監視したい。

スレーブが稼働しているか、きちんとレプリケーションできているか。

mysql replication checker

答え

何らかの監視システムが入っていて、たとえば各スレーブ側で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 などでできる。

関連するメモ

コメント