Skip to content

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

サイトのトラブルシューティング用情報の収集

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

このガイドについて

問題を診断し、Cloudflare サポートへ十分な詳細を提供する には、できるだけ多くの情報を集めることが重要です。この記事では、Cloudflare サポートがよく依頼するトラブルシューティング情報の集め方を説明します。


クイックリファレンス: 適切なツールを選ぶ

問題の種類に応じて、どのトラブルシューティング方法を使うかを、この表で確認します。

問題の種類 推奨ツール 使うタイミング
ページが正しく表示されない HAR ファイル 表示の不具合、壊れた要素、ページ読み込みの遅さ
JavaScript エラー コンソールログ CORS エラー、スクリプトの失敗、ブラウザー側のエラー
プロトコルエラー(QUIC / HTTP2) NetLog ダンプ ERR_QUIC_PROTOCOL_ERRORERR_HTTP2_PROTOCOL_ERROR
応答が遅い curl(パフォーマンス) レイテンシ、TLS ハンドシェイク時間の計測
HTTP エラー(5xx、4xx) curl(HTTP エラー) エラーが Cloudflare 起因かオリジン起因かの切り分け
キャッシュの問題 curl(キャッシュ) キャッシュミス、古いコンテンツ、キャッシュヘッダー
SSL/TLS 証明書の問題 curl(SSL/TLS) 証明書エラー、TLS バージョンの問題
接続タイムアウト / 切断 Traceroute / MTR ネットワークパスの問題、ホップ間のレイテンシ
パケットロス、接続リセット パケットキャプチャ レイヤー 3/4 の問題、SSL ハンドシェイクの失敗
配信拠点の特定 Cloudflare データセンター リクエストを処理している Cloudflare PoP の確認

ブラウザーでのトラブルシューティング

これらのツールは、Web ブラウザーから直接情報を取得します。ページの読み込みと描画の問題を診断するときに使います。

HAR ファイルを生成する

HTTP Archive(HAR)は、リクエストとレスポンスのヘッダー、本文、ページ読み込み時間を含む、Web ブラウザーの全リクエストを記録します。シークレットモードまたはプライベートブラウジングのウィンドウを使います。

ブラウザーによっては、拡張機能が必要だったり、HAR を生成できなかったりします。ブラウザー拡張機能をインストールするときは、拡張機能提供者の手順に従います。

Chrome の場合

  1. シークレットモードで表示しているページ上で右クリックし、Inspect Element を選びます。

  2. Chrome DevTools がブラウザーの下部または左側に表示されます。Network タブをクリックします。

Chrome 開発者ツールの HAR 用 Network タブのスクリーンショット
  1. Preserve log にチェックを入れます。Cloudflare Cache の問題を報告する場合は、Disable cache にもチェックを入れます。

  2. 記録を開始します。

Chrome DevTools の HAR 記録ボタン
  1. 問題が起きる URL を開きます。問題を再現したら、DevTools 上部の "Export HAR" を選びます。
Chrome DevTools の export HAR オプション
  1. HAR ファイルをサポートチケットに添付します。

Firefox の場合

  1. プライベートウィンドウで、アプリケーションメニューから Tools > Web Developer > Network を選ぶか、Ctrl+Shift+I(Windows/Linux)または Cmd+Option+I(OS X)を押します。

  2. 問題が起きる URL を開きます。

  3. 問題を再現したあと、右クリックして Save All As HAR を選びます。

Microsoft Edge の場合

  1. プライベートウィンドウで Developer tools を開き(ショートカットは F12)、Network タブを選びます。

  2. 問題が起きる URL を開きます。

  3. 問題を再現したあと、Export as HAR をクリックし、続けて Save As... を選びます。

Safari の場合

  1. Safari のプライベートウィンドウ上部に Develop メニューが表示されていることを確認します。表示されない場合は、Safari > Preferences > Advanced を開き、Show Develop Menu in menu bar を選びます。

  2. Develop > Show Web Inspector を開きます。

  3. 問題が起きる URL を開きます。

  4. Web Inspector 内のリソースを Ctrl クリックし、Export HAR をクリックします。

モバイルの場合

Android の場合:

  1. モバイル端末で USB デバッグモードを有効にします。

  2. chrome://inspect/#devices を開きます。

  3. デバッグモードが有効なら、次の例のように “Remote Target” の下に端末が表示されます。

Android のデバッグモードで Inspect Devices を見つける場所
  1. URL を入力し、Openinspect を選んで Chrome の DevTools を開きます。

  2. DevTools ウィンドウで Network タブを選びます。

  3. Preserve log にチェックを入れます。Cloudflare Cache の問題を報告する場合は、Disable cache にもチェックを入れます。

  4. record をクリックします。

Chrome の開発者ツールで記録ボタンを見つける場所
  1. 問題が起きる URL を開きます。問題を再現したら、Network タブ内のいずれかの項目を右クリックし、Save all as HAR with Content を選びます。
HAR コンテンツの保存方法
  1. 影響を受けている Samsung 端末の画面録画とあわせて、HAR ファイルをサポートチケットに添付します。Samsung 端末での画面録画手順は、Samsung のドキュメント を参照してください。

iPhone の場合:

iOS 端末で HAR ファイルを生成する方法は、Okta または Apple のサポート記事を参照してください。影響を受けている iOS 端末の画面録画とあわせて、HAR ファイルをサポートチケットに添付します。Apple 端末には、いまは 画面録画機能が内蔵 されています。

コンソールログを書き出す

ブラウザーがリクエストを発行しない、またはキャンセルする状況(例: CORS)では、根本原因を特定するために、HAR ファイルに加えて JS コンソールログの出力が必要です。

Chrome の場合

  1. DevTools バーから Console タブを開きます。
  2. Console Settings を開き、Preserve Log を選びます。
  3. コンソールを開いたまま、問題を再現する手順を実行します。
  4. Console タブ内のいずれかの項目を右クリックし、Save as でログファイルを保存します。
  5. ログファイルをサポートチケットに添付します。
Chrome の開発者ツールで Console タブを見つける方法

Firefox の場合

  1. Web Developer Tools バーから Console タブを開きます。
  2. Console Settings を開き、Persist LogShow Timestamps を選びます。
  3. コンソールを開いたまま、問題を再現する手順を実行します。
  4. 右クリックし、メッセージを Select All したあと、Export Visible Messages to File を選びます。
  5. ログファイルをサポートチケットに添付します。

Microsoft Edge の場合

  1. Developer Tools バーから Console タブを開きます。
  2. Console Settings を開き、Preserve Log を選びます。
  3. コンソールを開いたまま、問題を再現する手順を実行します。
  4. Console タブ内のいずれかの項目を右クリックし、Save as でログファイルを保存します。
  5. ログファイルをサポートチケットに添付します。

Safari の場合

  1. Web Inspector バーから Console タブを開きます。
  2. Preserve Log のチェックを入れます。
  3. コンソールを開いたまま、問題を再現する手順を実行します。
  4. メッセージをすべて選び、右クリックして Save Selected でログファイルに保存します。
  5. ログファイルをサポートチケットに添付します。

NetLog ダンプを取得する

プロトコル関連の問題(ERR_QUIC_PROTOCOL_ERRORERR_HTTP2_PROTOCOL_ERROR など)をさらに切り分けるため、サポートチームから NetLog ダンプ の提供を依頼することがあります。

  1. 新しいタブを開き、使っているブラウザーに応じて次のいずれかを入力します。
  • chrome://net-export
  • edge://net-export
  • opera://net-export
  1. Start Logging To Disk ボタンをクリックします。
  2. 別のタブでネットワークの問題を再現します。 (chrome://net-export/edge://net-export/opera://net-export のタブは開いたままにします。閉じると記録が自動で止まります)
  3. Stop Logging ボタンをクリックします。
  4. ログファイルをサポートチケットに添付します。

コマンドラインでのトラブルシューティング

これらのツールはターミナルまたはコマンドプロンプトから実行します。ブラウザーの負荷なしに、接続、パフォーマンス、サーバー応答を確認するときに使います。

リクエストを処理している Cloudflare データセンターを特定する

データセンターの地図 は、ステータスページの拠点一覧 に大陸別に並んでいます。 データセンター名の 3 文字コードは、最寄りの主要な国際空港の IATA コード です。 ブラウザーのリクエストを処理している Cloudflare データセンターは、次の URL で確認します。 http://``_www.example.com_``/cdn-cgi/trace.

www.example.com を自分のドメインとホスト名に置き換えます。出力の colo フィールドを確認します。

curl でリクエストをトラブルシューティングする

curl は HTTP/HTTPS リクエストを送るコマンドラインツールで、次の切り分けに役立ちます。

  • HTTP/HTTPS のパフォーマンス
  • HTTP エラーレスポンス
  • HTTP ヘッダー
  • API
  • サーバー / プロキシ応答の比較
  • SSL 証明書

標準の HTTP GET リクエストをサイトへ送るには、次のコマンドを実行します(www.example.com を自分のホスト名に置き換えます)。

curl -svo /dev/null http://www.example.com/

この curl の例は、HTTP レスポンスとリクエストヘッダーの詳細を返し、ページ本文は破棄します。curl の出力で、HTTP 応答と、Cloudflare がそのサイトのトラフィックを現在プロキシしているかを確認できます。

HTTP エラー、パフォーマンス、キャッシュ、SSL/TLS 証明書の切り分けのヒントは、次の各節を参照してください。

HTTP エラー

Cloudflare からの応答で HTTP エラーを切り分けるときは、オリジン Web サーバーへ直接リクエストを送り、オリジンが原因かどうかを確認します。HTTP エラーを切り分けるには、オリジン Web サーバーの IP アドレスへ直接 curl を実行します(Cloudflare のプロキシを迂回します)。

curl -svo /dev/null http://example.com --connect-to ::203.0.113.34

パフォーマンス

curl は、-w または --write-out オプション で HTTP/HTTPS リクエストのレイテンシや性能低下を測れます。次の例は、TLS ハンドシェイク、DNS ルックアップ、リダイレクト、転送などの所要時間を計測します。

curl -svo /dev/null https://example.com/ -w "\nContent Type: %{content_type} \
\nHTTP Code: %{http_code} \
\nHTTP Connect:%{http_connect} \
\nNumber Connects: %{num_connects} \
\nNumber Redirects: %{num_redirects} \
\nRedirect URL: %{redirect_url} \
\nSize Download: %{size_download} \
\nSize Upload: %{size_upload} \
\nSSL Verify: %{ssl_verify_result} \
\nTime Handshake: %{time_appconnect} \
\nTime Connect: %{time_connect} \
\nName Lookup Time: %{time_namelookup} \
\nTime Pretransfer: %{time_pretransfer} \
\nTime Redirect: %{time_redirect} \
\nTime Start Transfer: %{time_starttransfer} \
\nTime Total: %{time_total} \
\nEffective URL: %{url_effective}\n" 2>&1

このタイミング出力の説明 は Cloudflare ブログにあります。

キャッシュ

curl は、キャッシュに影響する HTTP レスポンスヘッダーの確認に使えます。Cloudflare のキャッシュを切り分けるときは、特に次の HTTP ヘッダーを確認します。

  • CF-Cache-Status
  • Cache-Control/Pragma
  • Expires
  • Last-Modified
  • s-maxage

SSL/TLS 証明書

curl で証明書を確認する

次の curl コマンドは、HTTPS リクエスト時に Cloudflare が提示する SSL 証明書を表示します(www.example.com を自分のホスト名に置き換えます)。

curl -svo /dev/null https://www.example.com/ 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"

オリジン証明書を表示するには(インストールされている場合)、次の 203.0.113.34 をオリジン Web サーバーの実際の IP アドレスに、www.example.com を自分のドメインとホスト名に置き換えます。

curl -svo /dev/null https://www.example.com --connect-to ::203.0.113.34 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"

TLS バージョンをテストする

ブラウザー対応を切り分けるときや、対応している TLS バージョンを確認するときは、curl に --tlsv1.X--tls-max を付けて、特定の TLS バージョンをテストできます。

  • --tlsv1.0 --tls-max 1.0
  • --tlsv1.1 --tls-max 1.1
  • --tlsv1.2 --tls-max 1.2
  • --tlsv1.3 --tls-max 1.3

Cloudflare を一時停止する

詳細は Cloudflare の一時停止 を参照してください。


ネットワークのトラブルシューティング

これらのツールは、所在地から Cloudflare またはオリジンサーバーまでの経路の問題、パケットロス、接続失敗など、ネットワークレベルの問題を診断します。

traceroute を実行する

Traceroute は、ネットワーク上のパケット経路のレイテンシを測る診断ツールです。ほとんどのオペレーティングシステムが traceroute コマンドに対応しています。Cloudflare がプロキシしているサイトで接続の問題が起き、Cloudflare サポートに支援を依頼する ときは、traceroute の出力を必ず提供します。

オペレーティングシステムごとの traceroute の手順は次のとおりです。次の例の www.example.com は、自分のドメインとホスト名に置き換えます。

Windows で traceroute を実行する

  1. Start メニューを開きます。

  2. Run をクリックします。

  3. コマンドラインインターフェイスを開くには、cmd と入力して OK をクリックします。

  4. コマンドラインプロンプトで、次を入力します。

IPv4 の場合 -

tracert www.example.com

IPv6 の場合 -

tracert -6 www.example.com
  1. Enter を押します。

  2. 結果をコピーしてファイルに保存するか、別のプログラムに貼り付けできます。

Linux で traceroute を実行する

  1. ターミナルウィンドウを開きます。

  2. コマンドラインプロンプトで、次を入力します。

IPv4 の場合 -

traceroute www.example.com

IPv6 の場合 -

traceroute -6 www.example.com
  1. 結果をコピーしてファイルに保存するか、別のプログラムに貼り付けできます。

Mac OS で traceroute を実行する

  1. Network Utility アプリケーションを開きます。
  2. Traceroute タブをクリックします。
  3. 該当する入力欄に ドメイン または IP アドレス を入力し、Trace を押します。
  4. 結果をコピーしてファイルに保存するか、別のプログラムに貼り付けできます。

Mac OS のターミナルを使う場合は、上の Linux 向け traceroute 手順でも実行できます。

ログに CF-RAY ヘッダーを追加する

CF-RAY ヘッダーは、ウェブサイトへのリクエストを Cloudflare ネットワーク上で追跡します。問題を切り分けるときは、Web リクエストの CF-RAY を Cloudflare サポートへ提供します。使っている Web サーバーに応じた次のスニペットでオリジン Web サーバーの設定を編集すると、ログに CF-RAY を追加できます。

Apache Web サーバーの場合は、LogFormat に %{CF-Ray}i を追加します

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{CF-Ray}i" cf_custom

Nginx Web サーバーの場合は、log_format に '$http_cf_ray' を追加します

log_format cf_custom '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$http_cf_ray';

MTR を実行する

My Traceroute(MTR)は、traceroute と ping を組み合わせてネットワークパスの健全性を測るツールです。ネットワークの接続と速度を調べる、よく使う方法のひとつです。パス上のホップに加えて、宛先までの経路のレイテンシとパケットロスを継続的に更新して表示します。パス上でいま何が起きているかをリアルタイムに見られるため、ネットワーク問題の切り分けに役立ちます。

MTR は traceroute と同様の方法でネットワークパスを発見し、そのあと定期的にパケットを送って情報を集め続け、ネットワークの健全性と速度の最新の見取り図を提供します。

traceroute と同様に、MTR は送信パケットに ICMP または UDP を使え、戻りパケット(Type 11: Time Exceeded)には ICMP を使います。

MTR でネットワークパスのレポートを生成するには

UNIX 系マシンで MTR を使う

一般的には、次のように MTR を使います。

mtr -rw <dest_hostname> e.g.: mtr -rw one.one.one.one

または宛先 IP で:

mtr -rw <dest_IP> e.g.: mtr -rw 1.1.1.1

TCP ポートを指定する場合

mtr -P <tcp port> -T <destination ip>

MTR の分析については、次のドキュメントを参照してください。How to read MTR

パケットキャプチャを実行する

レイヤー 3/4 で起きる問題は、リクエストが Cloudflare のログシステムに届く前に発生するため、HTTP ログには出ません。そのため、接続リセット、パケットロス、SSL ハンドシェイクの失敗は、パケットレベルで深く調べないと切り分けが難しいことがあります。

Cloudflare が生成する一部の HTTP エラー(520524525 など)は、レイヤー 3/4 の問題を示しており、さらに調べるためにパケットキャプチャが必要になることがあります。

パケットキャプチャの実行方法

パケットキャプチャには Wireshark を推奨します。tcpdump コマンドラインの使い方は、この記事 を参照してください。

  1. あとで表示フィルターを多用しなくて済むよう、バックグラウンドでデータを送る可能性のあるプログラムやブラウザーのタブをすべて閉じます。
  2. Wireshark のキャプチャフィルターを作成します(詳細は この記事 を参照してください)。
  3. 適切なインターフェイスを選びます(例: Wi-Fi: en0)。どのインターフェイスを使うか分からない場合は、Wireshark が各インターフェイスの I/O グラフを表示するので、それを手がかりにします。
  4. 左上の青いサメのひれアイコンをクリックして、パケットキャプチャを開始します。
  5. キャプチャを実行したまま、問題を再現します。
  6. 左上の赤い四角アイコンをクリックして、パケットキャプチャを停止します。
  7. .pcap ファイルとして保存し、サポートチケットに添付します。

関連リソース

役に立ちましたか?