MySQLの監視
2020年1月23日
最近、MySQLが落ちてしまうことがあり、原因が特定できずに、その都度調べて対処しているが、落ちてしまっても、気づかないことがある。
HTTPならば、80番ポートを監視していれば良い。MySQLの場合どうしたらいいのか、調べた。
方法1 コマンドラインからの確認
# mysqladmin -h 127.0.0.1 -P 3306 -u root ping
mysqladmin: connect to server at '127.0.0.1' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
mysqlにコマンドを送ると、反応があるとのこと。
mysqlを停めて実行すると
# mysqladmin -h 127.0.0.1 -P 3306 -u root ping
mysqladmin: connect to server at '127.0.0.1' failed
error: 'Can't connect to MySQL server on '127.0.0.1' (115)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
こんな感じで、エラーの出方が違うので、cron等で組み込み、メール送信すれば良い。
でも、今回はサクッとやりたい。
方法2 uptimerebotを使用する
https://uptimerobot.com/ を使ってみる。httpやping、port指定で監視が出来る。
WordPressで、MySQLのエラー時は、httpエラーコード500を出すようだが、検知設定がない。
そこで、 Keywordというのもあったで利用することにする。
WordPressで使っているので、MySQLが落ちると、ホームページ上に「Error establishing a database connection」という表示がされている。これをここに指定した。
ただ、Wordpressによっては、日本語表示されているのですが、その場合、日本語で記載しても、エラー検知されなかった。エラー時のウェブのソースを見ても、イマイチ使えるキーワードがなかった。
時間があるときに、もっとしっかり組み込みたい
参考にしたサイト
https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0012