🙆

「ネットワーク的に到達していない」をChromeのDevToolとLogAnalyticsからログを確認する

2024/07/07に公開

はじめに

複数のサービスが関連したWEBシステムを構築している場合、どこのサービスまで通信が到達しているか確認することはトラシューの一環として遭遇する。
その時には、DevツールとChromeから確認することができるので備忘として残す。
#devツールを使うことに抵抗があるのでちゃんと使ってみようというのが裏の趣旨

システム構成

構成1

クライアント → Application Gateway → (バックエンドは無し)

期待する結果

バックエンドが存在しないため、502 Bad GatewayがAppGWから返却される。

確認結果

  • ディベロッパーツール
    alt text

502で返ってきていること、宛先サーバがAppGWであることが分かる。

  • Log Analyticsワークスペース

alt text

ログには記録されているため、いわゆる「ネットワーク的には到達している」状態である。

構成2

クライアント → Application Gateway → AppService

なお、AppServiceは停止ではなく、Application Gatewayでホストの上書きを実施しないことで到達しない状態を作りだしている。バックエンドの設定でオーバライドに「いいえ」を選択している。
https://learn.microsoft.com/ja-jp/azure/application-gateway/configure-web-app?tabs=defaultdomain%2Cazure-portal

https://jpaztech.github.io/blog/network/appgw-appservice-redirectissue/

ちなみに、運用環境でのホスト名の上書きが推奨されていない。理由は以下を参照。
https://learn.microsoft.com/ja-jp/azure/architecture/best-practices/host-name-preservation?WT.mc_id=Portal-Microsoft_Azure_HybridNetworking

期待する結果

  • AppServiceが起動中の場合は、
    • ディベロッパーツールでAppServiceのIPまで確認できる?
    • ログは記録されるはず(ネットワーク的に到達している状態)
  • ホスト名の上書きをしていない場合は、
    • 502がAppGWから返される
    • ログは記録されないはず(ネットワーク的に到達していない状態)

確認結果

  • AppServiceが起動中の場合
    • ディベロッパーツール
      alt text
      200で返ってきている。ただし接続先のServerは表示されない。App Serviceの仕様だろうか。
    • Log Analyticsワークスペース(AppGW)
      alt text
      バックエンドの上書きを行っているため、HostがAppServiceのホスト名に上書きされている。Original Hostに元の要求であるAppGWのホスト名が記載されている。
    • Log Analyticsワークスペース(AppService)
      alt text
      UserAgentにも記録があり、クライアントからのリクエストが到達していることが分かる。
  • ホスト名の上書きをしていない場合
    • ディベロッパーツール
      alt text
      Application Gatwayから502が返却されていることが分かる。
    • Log Analyticsワークスペース(AppGW)
      alt text
      Application Gatewayにはもちろん到達しており、後続へのルーティングも行っているが、リクエストが拒否された結果502になっている。
    • Log Analyticsワークスペース(AppService)
      該当時間帯のログが記録されていなかった。

おまけ

alt text
1リクエストが完了するまでの処理をみることもできるので、どこに時間がかかっているかも特定ができる。
各項目の説明は以下を参照。
https://developer.chrome.com/docs/devtools/network/reference?utm_source=devtools&hl=ja#timing-explanation

Discussion