レプリケーション監視
やりたいこと~監視ソフトを使わない簡単な監視~
Zabbixとか監視ソフト使えばできるのかも知れないが、もう個人サーバではCloudWatchを除く監視ソフト(ツール)は使わないことにした。
とにかく面倒くさい、監視設定って。
個人サーバでは重要サービスもないのでもっと簡単に楽にやりたい。ZabbixもNagiosももう見たくない。
なので現在は簡易スクリプトをSlave側のcronに仕込んで監視している。
監視スクリプト~レプリケーション監視~
mkdir -p /usr/local/user01/bin cat > /usr/local/user01/bin/mysql_repl_check.sh << 'EOF' #!/bin/bash set -e set -u mysql -uroot -p********* -e "SHOW SLAVE STATUS\G" | grep Slave_IO_Running: > /tmp/Slave_IO_Running mysql -uroot -p********* -e "SHOW SLAVE STATUS\G" | grep Slave_SQL_Running: > /tmp/Slave_SQL_Running less /tmp/Slave_IO_Running | grep "Slave_IO_Running: Yes" || echo -e "repl_error.\nplease check master and slave." | mail -s "repl_error" -r test@sample.info test@sample.info less /tmp/Slave_SQL_Running | grep "Slave_SQL_Running: Yes" || echo -e "repl_error.\nplease check master and slave." | mail -s "repl_error" -r test@sample.info test@sample.info EOF crontab -e ----- (追記) #レプリケーション監視 */5 * * * * /usr/local/user01/bin/mysql_repl_check.sh -----
こんな簡単なものでも結構役に立っている。
こいつにレプリ外れを何回教えてもらったことか。
特に気に入っているのはAMIからインスタンスを復旧させてローカルIPアドレスなどが変わってしまってもそのままでよいところ。
使うのであればメールアドレスは自分のに変えてください。
ちなみに下はターミナルに出力する用。
存在自体を忘れててほとんど使うことがない。
MySQLにログインしてSHOW SLAVE STATUS\Gを打ってしまうことが多い。
cat > /usr/local/user01/bin/mysql_repl_check_watch.sh << 'EOF' #!/bin/bash set -e set -u mysql -uroot -p********* -e "SHOW SLAVE STATUS\G" | grep Slave_IO_Running: > /tmp/Slave_IO_Running mysql -uroot -p********* -e "SHOW SLAVE STATUS\G" | grep Slave_SQL_Running: > /tmp/Slave_SQL_Running EOF chmod a+x /usr/local/user01/bin/mysql_repl_check_watch.sh /usr/local/user01/bin/mysql_repl_check_watch.sh mysql: [Warning] Using a password on the command line interface can be insecure. Slave_IO_Running: Yes mysql: [Warning] Using a password on the command line interface can be insecure. Slave_SQL_Running: Yes