Cloudflare Docs
Support
Support
Visit Support on GitHub
Set theme to dark (⇧+D)

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

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

Cloudflare サポートを一緒に問題の診断やトラブルシューティングを円滑に進めるためのデータ収集方法をご紹介します。Cloudflareは、トラブルシューティングの際、HARファイルの生成から着手することを強くお勧めしています。

​​ 本記事の内容


​​ 概要

できる限り多くの情報を手に入れることが、問題を診断するため、そして Cloudflare サポートに適切な詳細を提供するために重要となります。この記事は、通常Cloudflare サポートから提示をお願いするトラブルシューティング情報をどう収集するかを説明するためのものです。


​​ HARファイルを生成する

HTTアーカイブ(HAR)は、リクエストヘッダー、レスポンスヘッダー、本文コンテンツ、ページの読み込み時間を含め、全てのWebブラウザ要求を記録しています。

現在、デフォルトでHAR機能にアクセスできるのは、ChromeとFirefoxだけです。他のブラウザは、ブラウザ拡張機能が必要であるか、HARの生成ができません。ブラウザ拡張機能をインストールする際、拡張機能プロバイダーの指示にしたがってください。

1. ブラウザページで、画面上の任意の場所で右クリックをし、「Elementを検証する」(Inspect Element)を選択します。

2. デベロッパーツールがブラウザの下部か左側に表示されます。「ネットワーク」(Network)タブをクリックします。

HARネットワークタブのスクリーンショット(Chromeデベロッパーツール)

3. 「ログを保存する」(Preserve log)を確認します。

4. 記録をクリックします。

記録ボタンのHARのスクリーンショット(Chrome デベロッパーツール)

5. 問題の原因となったURLを表示します。問題が発生したら、「ネットワーク」(Network)タブ内のどの項目でも右クリックし、「コンテンツを含めてHARとして全て保存する」(Save all as HAR with Content)を選択します。

保存メニューのHARのスクリーンショット(Chrome デベロッパーツール)

6. サポートチケットにHARファイルを添付します。

1. アプリケーションメニューから、Tools(ツール)>Web Developer(Webデベロッパー)>Network(ネットワーク)次の順に選択します。または、Ctrl+Shift+I (Windows/Linux) か Cmd+Option+I (OS X)を押します。

2. 問題の原因となったURLを表示します。

3. 問題を複製した後、右クリックし、HARとして全てを保存する(Save All As HAR)を選択します。

1. デベロッパーツール(ショートカットは_F12_)に移動し、「ネットワーク」タブを選択します。

2. 問題の原因となったURLを表示します。

3. 問題を複製してから、「HARとしてエクスポートする」(Export as HAR)の後に「名前を付けて保存する」(Save As…)をクリックします。

1. Safariでは、ブラウザウィンドウの上部にあるDevelop(デベロップ)メニューが表示されることを確認します。表示されない場合は、Safari > 環境設定(Preference) > 詳細設定(Advanced) へ進み、メニューバーでデベロッパーメニューの表示を選択します。

2. デベロップする > Webインスペクターの表示へと移動します。

3. 問題の原因となったURLを表示します。

4. Webインスペクター内のリソースをCtrlキーを押しながら、Export HAR(HARをエクスポートする)をクリックします。


​​ あなたのリクエストにお応えできるCloudflareデータセンターを特定する

データセンターのマップ Cloudflareステータスページに一覧化され、大陸別に分類されています。データセンター名の三文字のコードは、最も近い、主要な国際空港の IATA codeです。 http://``_www.example.com_``/を確認して、あなたのブラウザに対するリクエストを提供するCloudflareデータセンターを決定してください。

www.example.com をあなたのドメインとホスト名に置き替えてください。出力結果からのcoloフィールドに注意してください。


​​ cURLコマンドでリクエストをトラブルシューティングする

cURLは、HTTP/HTTPSリクエストを送信するためのコマンドラインツールで、トラブルシューティングに便利です。

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

次のコマンドを実行し、ウェブサイトに標準HTPP GETリクエストを送ります。( www.example.com をあなたのドメインとホスト名に置換えてください):

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

この例のcURLコマンドはHTTPレスポンスヘッダーとリクエストヘッダーの詳細を示す出力を返しますが、ページボディの出力は処分してしまいます。cURL出力は、HTTPレスポンスとCloudflareがサイトのために現在、トラフィックをプロキシしているかどうかを確認します。レスポンスのCF-RAYヘッダーの存在により、Cloudflareを介して、リクエストがプロキシされたと確認されます:

CF-Ray: 5097b5640cad8c56-LAX

HTTPエラー、パフォーマンス、キャッシュ、SSL/TLS 証明書のトラブルシューティングに関するヒントについては、下のセクションを展開してください:

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_ 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-control/Pragma
  • Expires
  • Last-Modified
  • S-Maxage

​​ 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に追加すると、cURLを使った特定のTLSバージョンをテストすることができます。

  • --tlsv1.0
  • --tlsv1.1
  • --tlsv1.2
  • --tlsv1.3

​​ Cloudflareを一時的に停止する

Cloudflareを一時停止させ、Cloudflareのリバースプロキシではなく、オリジンWebサーバー に直接トラフィックを送信します。SSLやWAFなどのCloudflareサービスは、一時停止になったドメインに対して有効になりません。Cloudflareをグローバルに一時停止させる代わりとして、CloudflareDNSアプリでトラフィックを受け取る記録を グレイクラウドする方法があります。

Cloudflareを一時的に停止するために:

  1. Cloudflareのダッシュボードにある「概要」タブに移動します。
  2. 詳細アクション」のページ右下部にある「このサイトでCloudflareを一時停止する」をクリックします。

​​ tracerouteを実行する

Tracerouteはネットワーク診断ツールで、ネットワーク全体でパケットのルートレイテンシーを測定します。ほとんどのオペレーティングシステムが、_traceroute_コマンドをサポートしています。Cloudflareでプロキシされたウェブサイトで接続の問題が発生し、 Cloudflareサポートにサポートを依頼する場合、tracerouteからの出力を提供するようにしてください。

違うオペレーティングシステムでTracerouteを実行するには、下記の手順を確認してください。次の例で、_ www.example.com_をあなたのドメインとホスト名に置き換えてください:

1. Start(スタート)メニューを開きます。

2. Run(実行)をクリックします。

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

4. コマンドラインプロンプトで、次を入力します: IPv4には -

> tracert www.example.com

IPv6には -

> tracert -6 www.example.com

5. Enter(入力)を押します。

6. 結果をコピーして、ファイルに保存することも他のプログラムにペーストすることもできます。

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

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

IPv4 -

> traceroute www.example.com

IPv6には -

> traceroute -6 www.example.com

3. 結果をコピーして、ファイルに保存することも他のプログラムにペーストすることもできます。

  1. Network Utility (ネットワークユーティリティ)アプリケーションを開きます。
  2. Traceroute タブをクリックします。
  3. 使用するインプットフィールドに_ドメイン_ 、または _IP アドレス_を入力し、「Trace」(トレース)を押します。
  4. 結果をコピーして、ファイルに保存することも他のプログラムにペーストすることもできます。

また、Mac OSの端末プログラムを使用するときは上記のLinuxでのtraceroute手順と同じようにしたがってください。


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

CF-RAYヘッダーがCloudflareのネットワークを通じてウェブサイトリクエストをトレースします。問題をトラブルシューティングする際、CloudflareサポートにウェブリクエストのCF-RAY を提供してください。あなたのウェブサーバーのブランドに対応する、下記のスニペットでオリジンWebサーバーの設定を編集すると、CF-RAYをログに追加することも可能です。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{CF-Ray}i" cf_custom
log_format cf_custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' '$http_cf_ray';

​​ 関連リソース