🙆
「ネットワーク的に到達していない」をChromeのDevToolとLogAnalyticsからログを確認する
はじめに
複数のサービスが関連したWEBシステムを構築している場合、どこのサービスまで通信が到達しているか確認することはトラシューの一環として遭遇する。
その時には、DevツールとChromeから確認することができるので備忘として残す。
#devツールを使うことに抵抗があるのでちゃんと使ってみようというのが裏の趣旨
システム構成
構成1
クライアント → Application Gateway → (バックエンドは無し)
期待する結果
バックエンドが存在しないため、502 Bad GatewayがAppGWから返却される。
確認結果
- ディベロッパーツール
502で返ってきていること、宛先サーバがAppGWであることが分かる。
- Log Analyticsワークスペース
ログには記録されているため、いわゆる「ネットワーク的には到達している」状態である。
構成2
クライアント → Application Gateway → AppService
なお、AppServiceは停止ではなく、Application Gatewayでホストの上書きを実施しないことで到達しない状態を作りだしている。バックエンドの設定でオーバライドに「いいえ」を選択している。
ちなみに、運用環境でのホスト名の上書きが推奨されていない。理由は以下を参照。
期待する結果
- AppServiceが起動中の場合は、
- ディベロッパーツールでAppServiceのIPまで確認できる?
- ログは記録されるはず(ネットワーク的に到達している状態)
- ホスト名の上書きをしていない場合は、
- 502がAppGWから返される
- ログは記録されないはず(ネットワーク的に到達していない状態)
確認結果
- AppServiceが起動中の場合
- ディベロッパーツール
200で返ってきている。ただし接続先のServerは表示されない。App Serviceの仕様だろうか。 - Log Analyticsワークスペース(AppGW)
バックエンドの上書きを行っているため、HostがAppServiceのホスト名に上書きされている。Original Hostに元の要求であるAppGWのホスト名が記載されている。 - Log Analyticsワークスペース(AppService)
UserAgentにも記録があり、クライアントからのリクエストが到達していることが分かる。
- ディベロッパーツール
- ホスト名の上書きをしていない場合
- ディベロッパーツール
Application Gatwayから502が返却されていることが分かる。 - Log Analyticsワークスペース(AppGW)
Application Gatewayにはもちろん到達しており、後続へのルーティングも行っているが、リクエストが拒否された結果502になっている。 - Log Analyticsワークスペース(AppService)
該当時間帯のログが記録されていなかった。
- ディベロッパーツール
おまけ
1リクエストが完了するまでの処理をみることもできるので、どこに時間がかかっているかも特定ができる。
各項目の説明は以下を参照。
Discussion