HTTP監視とキーワード監視の違いを、ローカルで試す

「200 OKでも内容が違う」状態をテキストファイルで再現します。正常・内容の異常・404・復旧の4パターンを、Pythonの簡易サーバーで試す手順です。

目次
  1. 200 OKだけでは分からない故障
  2. 1. テスト用のテキストファイルを配信する
  3. 2. 本文の変更と404を再現する
  4. 3. 外部サービスで障害通知を試す
  5. 参考資料

200 OKだけでは分からない故障

ページが開くことと、必要な内容が表示されることは別です。UptimeRobotの公式説明では、HTTP監視は応答の状態を、キーワード監視は本文中の特定文字列を調べます。ここではテキストファイルを使い、200のまま内容だけが変わる状態と、404になる状態を作ります。

ローカルのHTTP応答は検証済みです。UptimeRobotのアカウント登録、実画面での設定、メール通知の到達時間は未検証です。

1. テスト用のテキストファイルを配信する

Python 3.7以降が使える端末で、空のmonitor-checkフォルダを作り、その中のcheck.txtにapp-readyだけを書いて保存します。親フォルダから次のコマンドを実行し、ブラウザーでhttp://127.0.0.1:8765/check.txtを開きます。開発者ツールのNetworkで状態コードと本文を確認してください。

Python公式資料の--bindと--directoryを使い、検証用ファイルだけを自分の端末に配信します。この簡易サーバーは本番公開用ではありません。8765番が使用中なら、コマンドとURLの両方を別の番号に変えてください。

python3 -m http.server 8765 --bind 127.0.0.1 --directory monitor-check

2. 本文の変更と404を再現する

Networkのキャッシュを無効にし、変更ごとに再読み込みします。最初は200とapp-readyを確認。次に本文をmaintenanceへ変更すると、ファイルは存在するので200のままですが、期待する文字列は消えます。続いてcheck.txtを別名に変えると404になり、元の名前と内容へ戻せば200とapp-readyに復旧します。終了時はターミナルでCtrl+Cを押します。

2026年9月17日、Python 3.9.6の簡易サーバーとChromium 151で、この4状態を確認しました。ブラウザーはPlaywrightで操作し、キャッシュを無効にしています。結果は順に「200・文字列あり」「200・なし」「404・なし」「200・あり」でした。外部監視サービスによる障害検出の実測ではありません。

正常・本文変更・ファイル別名・復旧の4状態。本文を変更するとHTTP 200のまま期待する文字列が消える。
ローカルで確認したHTTP応答と本文の状態。外部監視サービスによる障害通知の実測ではありません。

3. 外部サービスで障害通知を試す

公開先を用意したら、専用のテストURLで同じ4パターンを試します。UptimeRobotの公式導入手順では、Add New Monitorから種類・対象URL・通知先を設定します。文字列が消えたときに知らせる場合は、Keyword not exists条件を使います。localhostのURLを登録しても、外部サービスから自分の端末を監視することはできません。

キーワードは、サーバーから返されたHTMLに含まれるものを選びます。公式説明によると、JavaScriptの実行後にだけ表示される文字列は対象になりません。ブラウザーで見える文字でも、ページのソースに含まれるかを調べてください。

変更時刻、管理画面の状態、通知到着時刻、復旧通知を別々に記録します。このテストで分かるのは、応答と文字列の変化を検出できるかどうかです。ログインや購入処理の成功まで確かめるには、別のテストが必要です。

参考資料