WordPressでサイトを運用している時、時々、サイトがダウンしてしまっている場合があります。
アクセスすると、「データベース接続確立エラー」というエラーが発生し、まったくページが表示されない状態になることがあります。
すぐに気づくことが出来ればよいのですが、あまり更新頻度が高くないサイトの場合、気づくのに数日かかってしまうことさえあるでしょう。
そうすると、多くの損失がでてしまいます。
サイトの死活監視を自動で行いたいと思うのですが、個人レベルで運用しているサイトの場合、別の監視サーバーを立てることは容易ではありません。
外部の監視サービスを使う
そこで、今回は、外部の無料の監視サービスを使って、Wordpressサイトの死活監視を行えるように設定したいと思います。
MySQLデータベースの死活監視まで行いたい
さらに、通常、無料の死活監視サービスは、Pingレベルの死活監視しか行ってくれませんが、ここで紹介する方法を用いると、MySQLのデータベースの死活監視も行うことが可能です。
実際、Wordpressのサイトダウンにおいては、MySQLのサービスがダウンしているケースが少なくありません。
そのような場合は、Ping監視だけでは、サイトの死活を十分に把握することができません。
SecureStarというサービスを使う
今回は、GMOグループが提供しているSecureStarというサービスを利用します。
http://www.securestar.jp/
その中の、「AlertMe」というサービスの「フリープラン」を登録しましょう。
大手なので、安心感があります。
登録すると、まずは「契約者ID」というのもが発行されます。
しかし、契約者IDでは、監視の設定などを行うことができませんので、「利用者ID」を自分で作成して、それを利用します。
AlertMeにログインして監視設定を行う
①利用者IDでログインしたら、「監視対象管理」から、「監視対象ホスト名」を設定しましょう。「説明」欄は適当に埋めてください。
②次に、「通知先アドレス管理」から、アラートを飛ばす先のメールアドレスを登録します。すぐに対応できるアドレスを設定しましょう。
③最後に「監視設定管理」から、①で作成した監視対象ホストを選択し、URL監視(レスポンスタイム)を選択します。これがポイントです。
さらに、下図のように、パラメーターを設定してください。URLパスのcheck.phpというものは、この後作成しますので、その通りに入れておいてください。
MySQLデータベースの死活監視用にcheck.phpを作成する
空のファイルに、以下のコードをコピペして、check.phpというファイル名で保存します。
usernameとpasswordの部分は、ご自分の環境に置き換えてください。
そして、WordPressのトップ階層に配置します。
<?php $link = mysql_connect("localhost", "username", "password"); if (!$link) { sleep(7); exit; }else{ echo "<head></head><body><p>Successfully connected to the server</p></body>"; } ?>
この処理では、MySQLへの接続を試みて、もし失敗した場合は、7秒間のスリープ処理を行っています。
このスリープ処理によって、URLのレスポンスタイム監視のしきい値を超えさせることにより、アラートを発報させることができます。
もしスリープ処理をしなければ、ただの空白ページが表示されることになりますが、Ping監視やURL監視からすると、正常にレスポンスがあったとみなされてしまうのです。
DB接続エラーがあった場合の、エラー文字列を検出する「URL監視(キーワードチェック)」というものもあるのですが、それは有料プランでしか使うことができません。
ですので、URLのレスポンスタイム監視と、上記のPHPスクリプトを組み合わせることにより、ホストの健全性と、データベースの健全性まで監視できるという仕組みです。
以上、完全無料でWordpressのサイトをMySQLデータベースも含めて死活監視する方法でした。
さらに良い方法をご存知の方は、ぜひコメントでお知らせくだされば幸いです。
コメント