サイトのトラブルシューティングのための情報収集
問題を診断するためにできるだけ多くの情報を収集し、Cloudflareサポートに適切な詳細を提供すること ↗が重要です。この記事では、Cloudflareサポートから一般的に要求されるトラブルシューティング情報の収集方法を説明します。
HTTPアーカイブ(HAR)は、リクエストおよびレスポンスヘッダー、ボディコンテンツ、ページの読み込み時間を含むすべてのウェブブラウザリクエストを記録します。
一部のブラウザでは、ブラウザ拡張機能が必要であるか、HARを生成できない場合があります。ブラウザ拡張機能をインストールする際は、拡張機能プロバイダーの指示に従ってください。
-
ブラウザページで右クリックし、要素を検査を選択します。
-
開発者ツールがブラウザの下部または左側に表示されます。ネットワークタブをクリックします。

-
ログを保持にチェックを入れます。
-
録画をクリックします。

- 問題を引き起こすURLにアクセスします。問題が発生したら、ネットワークタブ内の任意の項目を右クリックし、コンテンツ付きでHARとしてすべて保存を選択します。

- HARファイルをサポートチケットに添付します。
-
アプリケーションメニューから、ツール > ウェブ開発者 > ネットワークを選択するか、Ctrl+Shift+I(Windows/Linux)またはCmd+Option+I(OS X)を押します。
-
問題を引き起こすURLにアクセスします。
-
問題を再現した後、右クリックしてすべてをHARとして保存を選択します。
-
開発者ツールに移動し(F12をショートカットとして使用)、ネットワークタブを選択します。
-
問題を引き起こすURLにアクセスします。
-
問題を再現した後、HARとしてエクスポートをクリックし、次に**名前を付けて保存…**を選択します。
-
Safariで、ブラウザウィンドウの上部に開発メニューが表示されていることを確認します。表示されていない場合は、Safari > 環境設定 > 詳細に移動し、メニューバーに開発メニューを表示を選択します。
-
開発 > ウェブインスペクタを表示に移動します。
-
問題を引き起こすURLにアクセスします。
-
ウェブインスペクタ内のリソースをCtrl + クリックし、HARをエクスポートをクリックします。
Androidの場合:
-
モバイルデバイスでUSBデバッグモードを有効にします。
-
chrome://inspect/#devicesに移動します。 -
デバッグモードが有効になっている場合、以下のように「リモートターゲット」の下にデバイスが表示されます:

-
URLを入力し、開くと検査を選択してChromeのDevToolsを開きます。
-
DevToolsウィンドウでネットワークタブを選択します。
-
ログを保持にチェックを入れます。
-
録画をクリックします。

- 問題を引き起こすURLにアクセスします。問題が発生したら、ネットワークタブ内の任意の項目を右クリックし、コンテンツ付きでHARとしてすべて保存を選択します。

- HARファイルをサポートチケットに添付し、影響を受けたSamsungデバイスからの画面録画も添付します。Samsungデバイスからの録画方法については、Samsungのドキュメント ↗を参照してください。
iPhoneの場合:
Okta ↗またはAppleの ↗サポート記事を参照して、iOSデバイスからHARファイルを生成する方法を確認してください。HARファイルをサポートチケットに添付し、影響を受けたiOSデバイスからの画面録画も添付します。Appleデバイスには現在組み込みの画面録画機能 ↗があります。
リクエストがブラウザによって発行されないかキャンセルされた場合(例えば、CORS ↗のため)、HARファイルに加えてJSコンソールログ出力を取得する必要があります。これにより、根本原因を特定できます。
- 開発者ツールバーからコンソールタブに移動します。
- コンソール設定に移動し、ログを保持を選択します。
- コンソールを開いたまま、問題を再現する手順を実行します。
- コンソールタブ内の任意の項目を右クリックし、ログファイルとして保存を選択します。
- ログファイルをサポートチケットに添付します。

- ウェブ開発者ツールバーからコンソールタブに移動します。
- コンソール設定に移動し、ログを保持およびタイムスタンプを表示を選択します。
- コンソールを開いたまま、問題を再現する手順を実行します。
- 右クリックして、すべてのメッセージを選択し、表示されているメッセージをファイルにエクスポートを選択します。
- ログファイルをサポートチケットに添付します。
- 開発者ツールバーからコンソールタブに移動します。
- コンソール設定に移動し、ログを保持を選択します。
- コンソールを開いたまま、問題を再現する手順を実行します。
- コンソールタブ内の任意の項目を右クリックし、ログファイルとして保存を選択します。
- ログファイルをサポートチケットに添付します。
- ウェブインスペクタバーからコンソールタブに移動します。
- ログを保持のボックスにチェックを入れます。
- コンソールを開いたまま、問題を再現する手順を実行します。
- すべてのメッセージを選択し、右クリックして選択したものをログファイルに保存を選択します。
- ログファイルをサポートチケットに添付します。
プロトコルに関連する問題(ERR_QUIC_PROTOCOL_ERROR、ERR_HTTP2_PROTOCOL_ERRORなどのエラー)をさらにトラブルシューティングするために、サポートチームがNetLogダンプ ↗の提供を求める場合があります。
- 新しいタブを開き、使用しているブラウザに応じて以下を入力します:
chrome://net-exportedge://net-exportopera://net-export
- ディスクへのログの開始ボタンをクリックします。
- 別のタブでネットワークの問題を再現します。
(
chrome://net-export/、edge://net-export/またはopera://net-exportタブを開いたままにしておく必要があります。そうしないと、ログが自動的に停止します) - ログの停止ボタンをクリックします。
- ログファイルをサポートチケットに添付します。
データセンターの地図 ↗は、Cloudflareステータスページ ↗にリストされており、大陸別に整理されています。
データセンター名の3文字コードは、最寄りの主要国際空港のIATAコード ↗です。
ブラウザのリクエストを処理しているCloudflareデータセンターを特定するには、次のURLにアクセスします:
http://``_www.example.com_``/cdn-cgi/trace.
www.example.comをあなたのドメインとホスト名に置き換えます。出力からcoloフィールドをメモしてください。
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証明書のトラブルシューティングに関するヒントを示します:
CloudflareからのレスポンスでHTTPエラーをトラブルシューティングする際は、オリジンがエラーを引き起こしたかどうかを確認するために、オリジンウェブサーバーに直接リクエストを送信してテストします。HTTPエラーをトラブルシューティングするには、CloudflareのプロキシをバイパスしてオリジンウェブサーバーのIPアドレスに直接curlを実行します:
curl -svo /dev/null http://example.com --connect-to ::203.0.113.34curlは、-wまたは*—write-out* curlオプション ↗を使用してHTTP/HTTPSリクエストのレイテンシまたはパフォーマンスの低下を測定します。以下のcurlの例は、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
次のcurlコマンドは、HTTPSリクエスト中にCloudflareによって提供されるSSL証明書を表示します(www.example.comをあなたのホスト名に置き換えます):
curl -svo /dev/null https://www.example.com/ 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"オリジン証明書を表示するには(インストールされていると仮定)、以下の203.0.113.34をオリジンウェブサーバーの実際のIPアドレスに置き換え、www.example.comをあなたのドメインとホスト名に置き換えます:
curl -svo /dev/null https://www.example.com --connect-to ::203.0.113.34 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"ブラウザのサポートをトラブルシューティングしたり、サポートされているTLSバージョンを確認したりする場合、curlを使用して特定のTLSバージョンをテストできます。次の—tlsv1.X ↗および—tls-max ↗オプションをcurlに追加します:
--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を一時停止するを参照してください。
トレースルートは、ネットワークを横断するパケットのルートレイテンシを測定するネットワーク診断ツールです。ほとんどのオペレーティングシステムはtracerouteコマンドをサポートしています。Cloudflareをプロキシしたウェブサイトで接続の問題が発生した場合、Cloudflareサポートに支援を求める際には、トレースルートの出力を提供してください。
以下の指示に従って、異なるオペレーティングシステムでトレースルートを実行します。以下の例では、www.example.comをあなたのドメインとホスト名に置き換えます:
-
スタートメニューを開きます。
-
実行をクリックします。
-
コマンドラインインターフェースを開くには、cmdと入力し、OKをクリックします。
-
コマンドラインプロンプトで、次のように入力します。IPv4の場合 -
tracert www.example.comIPv6の場合 -
tracert -6 www.example.com-
Enterを押します。
-
結果をコピーしてファイルに保存するか、別のプログラムに貼り付けることができます。
-
ターミナルウィンドウを開きます。
-
コマンドラインプロンプトで、次のように入力します:
IPv4の場合 -
traceroute www.example.comIPv6の場合 -
traceroute -6 www.example.com- 結果をコピーしてファイルに保存するか、別のプログラムに貼り付けることができます。
- ネットワークユーティリティアプリケーションを開きます。
- トレースルートタブをクリックします。
- 適切な入力フィールドにドメインまたはIPアドレスを入力し、トレースを押します。
- 結果をコピーしてファイルに保存するか、別のプログラムに貼り付けることができます。
または、Mac OSのターミナルプログラムを使用する際は、上記のLinuxトレースルートの指示に従ってください。
CF-RAYヘッダーは、Cloudflareのネットワークを通じてウェブリクエストを追跡します。問題をトラブルシューティングする際には、CloudflareサポートにウェブリクエストのCF-RAYを提供してください。また、以下のスニペットを使用して、オリジンウェブサーバーの設定を編集することで、ログにCF-RAYを追加できます。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{CF-Ray}i" cf_customlog_format cf_custom '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$http_user_agent" ''$http_cf_ray';トレースルート(MTR)は、トレースルートとpingを組み合わせたツールで、ネットワーク接続と速度をテストするための一般的な方法です。ネットワークパスに沿ったホップに加えて、MTRは宛先へのルートに沿ったレイテンシとパケットロスに関する情報を常に更新して表示します。これにより、ネットワークの問題をトラブルシューティングする際に、リアルタイムでパス上で何が起こっているかを確認できます。
MTRは、トレースルートと同様の方法でネットワークパスを発見し、その後、情報を収集し続けるために定期的にパケットを送信して、ネットワークの健康と速度に関する更新されたビューを提供します。
トレーサルートと同様に、MTRはICMPまたはUDPを使用して送信パケットを処理しますが、戻りパケット(タイプ11:タイムエクスシーデッド)にはICMPに依存します。
NIXベースのマシンでのMTRの使用
一般的に、次のようにMTRを使用します:
mtr -rw <dest_hostname> 例: mtr -rw one.one.one.oneまたは、宛先IPを使用して:
mtr -rw <dest_IP> 例: mtr -rw 1.1.1.1MTRの分析について詳しく説明しているこのドキュメントを参照してください:MTRの読み方 ↗。 ↗
なぜ、いつパケットキャプチャが必要ですか?
レイヤー3/4で発生する問題は、リクエストがCloudflareのログシステムに到達する前に発生するため、HTTPログには表示されません。したがって、接続リセット、パケットロス、またはSSLハンドシェイクの失敗に関連する問題のトラブルシューティングは、パケットレベルでの深い調査なしでは難しい場合があります。
Cloudflareによって生成されるいくつかのHTTPエラー(520s ↗、524s ↗、および525s ↗など)は、レイヤー3/4での根本的な問題を示しており、さらなる調査のためにパケットキャプチャが必要になる場合があります。
パケットキャプチャを実行する方法
Cloudflareは、パケットキャプチャを実行するためにWireshark ↗を推奨しています。_tcpdump_コマンドラインの使用方法については、こちら ↗の記事を参照してください。
- バックグラウンドでデータを送信している可能性のあるすべてのプログラム/ブラウザタブを閉じて、後で多くの表示フィルターを使用する必要がないようにします。
- Wiresharkのキャプチャフィルターを作成します(詳細についてはこちら ↗の記事を参照してください)。
- 適切なインターフェースを選択します(例:Wi-Fi: en0)。どのインターフェースを使用するか不明な場合、Wiresharkは各インターフェースのI/Oグラフを提供してヒントを与えます。
- 左上隅の青いサメのひれアイコンをクリックして、パケットキャプチャを開始します。
- キャプチャを実行しながら問題を再現します。
- 左上隅の赤い四角いアイコンをクリックして、パケットキャプチャを停止します。
.pcapファイルとして保存し、サポートチケットに添付します。