Jetpackモニターのしくみとは?

自分のウェブサイトが何らかの理由でダウンしていたらすぐに知りたいですよね。でも、自分で常時チェックすることはできません。24時間起きていることはできないので。。。特に夜なんかは。そういうときに便利なのがWordPressプラグインのJetpackに付属しているモニタリング機能です。

JetpackはSNSシェア、セキュリティ対策、コメント機能といった三十以上の機能がてんこ盛りの超有名プラグインで、知っている人も多いと思います。プラグイン情報によると100万以上のものサイトで使われているそうです。

その機能のなかにサイト(サーバー)がダウンしたら自動でメールで教えてくれるサービスがあるんです。それも無料で。

プラグインインストール

インストールして有効化したらWordPress.comの自分のアカウントと連携します。

機能を有効に

WordPress.comと連携しただけではモニタリング機能は有効になりません!WordPress.comで有効にする必要があります。

  1. 参加サイト一覧から自分のサイトを選択
  2. サイドメニューの「設定」をクリック
  3. ドロップダウンメニューから「セキュリティ」を選択
  4. Jetpack モニターのスライダを有効に

こんな感じのメール

で、サイトがダウンしたときのメールはこんな感じです。

[Jetpack モニター] 【サイト名】は読み込まれていません。

というタイトルのメールです。

しくみ

そのJetpackモニターの裏側の仕組みはどうなっているのでしょうか?どうやって「ウェブサイトが停止している」としているのでしょうか?

Jetpack公式サイトの解説(英語)Jetpack公式サイトの解説(英語)によると、

  1. ユーザがモニタ機能が有効化すると
  2. JetpackサーバーがユーザーのサイトにHTTPリクエストを5分ごとに送信します
  3. サイトからの返答のHTTPステータスコードが以下のとき「異常かも」とマークします
    • 400以上のエラー
    • 300のダイレクトが続く(ループ)
    • 二十秒以内に応答しない
  4. それがJetpackサーバーの問題ではないことを確認するために物理的に別のサーバーが同じように送信して確認します。
  5. それでも異常だったときにユーザーにメールを送信します。
  6. 異常がなくなると、「復旧しました」というメールをユーザーに送信します。

こうして上のようなメールを受信します。

でも時々、「あなたのサイトがダウンしています」メールを見て実際にサイトを確認してみると

ちゃんと見れるじゃないか!ダウンしてないじゃん!

ということがあります。私も頻繁にあります。問題がないのにどうしてなのでしょうか?これについても公式サイトによると

サイトの(トップページ)の読み込みに時間がかかりすぎるとJetpackモニターはサイトを「ダウン(停止)している」とみなしてしまいます。

読み込みに時間がかかる理由としては

  • サーバーの応答速度が遅い
  • 画像やJSなどのリソースが重い

ということが考えられますが、けっこう根が深い問題です。共有サーバーなんかだと他のいろんなユーザー(数百サイトになることも)と一つのサーバーを共有しているので遅くなりがちです。これを解決するにはサーバーを移転するしかありません。

Pocket