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-check2. 本文の変更と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・あり」でした。外部監視サービスによる障害検出の実測ではありません。
3. 外部サービスで障害通知を試す
公開先を用意したら、専用のテストURLで同じ4パターンを試します。UptimeRobotの公式導入手順では、Add New Monitorから種類・対象URL・通知先を設定します。文字列が消えたときに知らせる場合は、Keyword not exists条件を使います。localhostのURLを登録しても、外部サービスから自分の端末を監視することはできません。
キーワードは、サーバーから返されたHTMLに含まれるものを選びます。公式説明によると、JavaScriptの実行後にだけ表示される文字列は対象になりません。ブラウザーで見える文字でも、ページのソースに含まれるかを調べてください。
変更時刻、管理画面の状態、通知到着時刻、復旧通知を別々に記録します。このテストで分かるのは、応答と文字列の変化を検出できるかどうかです。ログインや購入処理の成功まで確かめるには、別のテストが必要です。