Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Health Checks の分析

最終更新 Markdown で表示Agent セットアップ

Health Checks の分析を使い、オリジンの問題をデバッグします。

オリジンの稼働率、レイテンシー、障害理由、個別のイベントログを確認できます。

  • Health Checks By Uptime: 各オリジンの稼働率を時系列で表示します。
  • Health Checks By Failure Reason: 障害を理由別に内訳表示します。下記のよくあるエラーコードの原因と解決策 を参照してください。
  • Health Checks By Latency: 各オリジンの平均レイテンシー(ラウンドトリップタイム)を時系列で表示します。
  • Event Log: 個々のヘルスチェックデータを表示します。
    • 各レコードを選択すると、Round trip timeFailure ReasonAverage Waterfall(リクエスト各段階の時系列データ)、Response status code などの詳細を確認できます。
    • Global は設定したリージョンではありません。有効なすべてのリージョンの集計データを表します。

よくあるエラーコード

TCP connection failed

原因

Health Checks がオリジンサーバーへの TCP 接続を確立できませんでした。

解決策

Cloudflare とオリジンの間のネットワーク障害、またはファイアウォールが接続を拒否している場合に起きがちです。ネットワークとファイアウォールの設定がトラフィックを妨げていないことを確認してください。

HTTP timeout occurred

原因

設定したタイムアウト内に、オリジンが HTTP レスポンスを返しませんでした。タイムアウトが短い(たとえば 1〜2 秒)ときに起きます。

解決策

オリジンサーバーが応答できるよう、HTTP レスポンスタイムアウトを長くすることを Cloudflare は推奨します。

Response code mismatch error

原因

Cloudflare が受け取った HTTP ステータスコードが、Health Check 設定の expected_codes プロパティで定義した値と一致しません。

解決策

レスポンスコードは expected_codes と一致する必要があります。想定するレスポンスコードと、Event Log で受け取ったステータスコードを比較して、値が正しいことを確認してください。

別の原因

Health Check を HTTP 接続で設定していて、オリジンサーバーが HTTPS へリダイレクトしている場合にも、この問題が出ることがあります。このときのレスポンスコードは、多くの場合 301302、または 303 です。

解決策

Cloudflare の Health Check 設定を HTTPS に変更するか、follow_redirect の値を true にして、Cloudflare が正しいステータスコードを解決できるようにします。

Response body mismatch error

原因

オリジンサーバーから返ったレスポンス本文に、Health Check で設定した expected_body の値(大文字小文字を区別しない)が含まれていません。

解決策

expected_body がレスポンス本文の先頭 10 KB に含まれるようにしてください。

TLS untrusted certificate error

原因

証明書がパブリックな認証局(CA)から信頼されていません。

解決策

自己署名証明書を使っている場合は、パブリックに信頼される証明書を使うか、Health Check の allow_insecure プロパティを true にすることを Cloudflare は推奨します。

TLS name mismatch error

原因

Health Check(クライアント)が、サーバー証明書上の名前をリクエストのホスト名と照合できませんでした。

解決策

Health Check の設定を確認し、Cloudflare Health Check に設定した header の値が正しいことを確認してください。

TLS protocol error

原因

古いバージョンの TLS を使っている場合や、オリジンサーバーが HTTPS 用に設定されていない場合に、このエラーが起きることがあります。

解決策

オリジンサーバーが TLS 1.2 以上に対応し、HTTPS 用に設定されていることを確認してください。

TLS unrecognized name error

原因

サーバーがクライアントから提示された名前を認識しませんでした。ホストヘッダーを設定している場合、初期 TLS ハンドシェイクの ServerName として使われます。未設定の場合、Cloudflare は ServerName を提示しないため、このエラーの原因になります。

解決策

Health Check オブジェクトにホストヘッダーを設定してください。

No route to host error

原因

その IP アドレスに Cloudflare のネットワークから到達できません。よくある原因は、ISP やホスティングプロバイダーのネットワーク障害(例: BGP レベル)、またはその IP が存在しないことです。

解決策

IP が正しいことを確認し、ISP またはホスティングプロバイダーのネットワーク障害がないかを調べてください。

TCP Timeout

原因

データ送信が確認されず、再送も成功しませんでした。

解決策

オリジンでハンドシェイクの SYN-ACK が行われているかを確認し、Cloudflare サポート に連絡してください。

Network Unreachable

原因

ネットワークが利用できないため、Cloudflare がオリジンの Web サーバーに接続できません。通常はネットワーク障害、またはオリジン IP の誤りが原因です。

解決策

Cloudflare の Health Checks 設定に入力したオリジンの IP、またはオリジンホスト名の DNS で返される IP を確認してください。

HTTP Invalid Response

原因

多くの場合、HTTP 502 エラーまたはバッドゲートウェイが原因です。

解決策

オリジンの Web サーバーがリクエストに応答すること、およびアプリケーションがクラッシュしていないこと、高負荷でないことを確認してください。

DNS Unknown Host

原因

オリジンの Web サーバーのホスト名が存在しません。

解決策

オリジンの Web サーバーが IP アドレスに解決されることを確認してください。

Connection Reset by Peer

原因

クライアントがオリジンの Web サーバーからデータを受信しているときに、ネットワークエラーが発生しました。

解決策

オリジンの Web サーバーでトラフィックが多いか、エラーが発生していないかを確認してください。

Monitor Configuration Error

原因

Health Check に設定エラーがあり、オリジンに対するチェックが実行されませんでした。

解決策

Health Check の設定を見直し、オリジンへの想定リクエストと一致していることを確認してください。

DNS Internal

原因

オリジンの Web サーバーのホスト名が、公開ルーティングできない、または制限された IP アドレス(たとえば localhost アドレス)に解決されます。このオリジンに対するチェックは実行されません。

解決策

オリジンの Web サーバーのホスト名が、公開ルーティング可能な IP アドレスに解決されることを確認してください。ホスト名が公開の Cloudflare anycast IP に解決される場合(ホスト名が Cloudflare でプロキシされているため)、ヘルスチェックは実行されますが、実際のオリジンサーバーではなく Cloudflare のエッジをプローブします。オリジンサーバーを直接監視するには、ヘルスチェックにオリジンの IP アドレス、またはプロキシしていないホスト名を使うように設定してください。

Other Failure

原因

上記のいずれの障害種別にも分類できない場合です。

解決策

Cloudflare サポート に連絡してください。

役に立ちましたか?