[Q]
・App Service にアクセスしてきているクライアントの情報を得たいのですが、どうすれば良いですか?
・外部の分析ツールやサービスを使わずに(App Service Web アプリを改変しないで)実現する方法について知りたいです。
[A]
App Service の HTTP logs を Log Analytics ワークスペースに収集することで、App Service に接続しているクライアントの情報を得ることができます。
<手順>
App Service のメニューの「監視」カテゴリの「診断設定」で「+診断設定を追加する」をくりっくします。
追加する診断設定の名前を入力して、「HTTP logs」 を✔、「Log Analyitcs ワークスペースへの送信」を✔して、ワークスペースを指定します。
(下図の例では、「Log Analyitcs ワークスペースへの送信」と「ストレージアカウントへのアーカイブ」 の両方を✔していますが、Log Analytics だけで大丈夫です。)
診断設定の追加が完了したら、App Service のアプリのサイトにアクセスしてみてください。
※ ログが収集されるまでには、通常、数分程度の時間がかかります。
App Service の「監視」カテゴリの「ログ」にて「AppServiceHTTPLogs」 テーブルを指定してクエリを実行します。
クエリの実行結果の、「CIp」 から HTTP クライアントの IP アドレスを確認できます。
「Log Analytics ワークスペースへの送信」を設定する方法は、クエリでの検索ができることがメリットの1つです。
(ストレージアカウントへのアーカイブ を設定する方法は、Blob コンテナーの階層構造に時間毎のデータとして保存されるため、JSON ファイルとしてダウンロードすることができます。)
[参考情報]
Azure App Service でのアプリの診断ログの有効化
https://learn.microsoft.com/ja-jp/azure/app-service/troubleshoot-diagnostic-logs
Azure Monitor Log Analytics テーブル / テーブル名別の Log Analytics テーブル / AppServiceHTTPLogs
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/AppServiceHTTPLogs
<抜粋>
列
Column | Type | 説明 |
---|---|---|
... | ... | ... |
Cip | string | クライアントの IP アドレス |
[更新日]
Update:202408