Log Analytics を使用して Application Gateway ログを確認する
Application Gateway が動作可能になったら、ログを有効にして、リソースで発生したイベントを検査できます。 たとえば、Application Gateway ファイアウォールのログでは、Web Application Firewall (WAF) が何を評価、照合、ブロックしているかを把握できます。 Log Analytics では、ファイアウォール ログ内のデータを調べて、さらに多くの分析情報を得ることができます。 ログ クエリについて詳しくは、「Azure Monitor のログ クエリの概要」をご覧ください。
この記事では、Web Application Firewall (WAF) のログについて説明します。 他の Application Gateway ログも同様の方法で設定できます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 アカウントをまだ持っていない場合は、無料でアカウントを作成することができます。
- Azure Application Gateway WAK SKU。 詳細については、「Azure Application Gateway 上の Azure Web Application Firewall」を参照してください。
- Log Analytics ワークスペース。 Log Analytics ワークスペースの作成について詳しくは、「Azure ポータルで Log Analytics ワークスペースを作成する」をご覧ください。
ログの送信
ファイアウォール ログを Log Analytics にエクスポートするには、「Application Gateway の診断ログ」を参照してください。 Log Analytics ワークスペース内にファイアウォールのログを取得したら、データの表示、クエリの記述、視覚エフェクトの作成、ポータルのダッシュボードへの追加を行うことができます。
例でデータを調べる
AzureDiagnostics テーブルを使用する場合、次のクエリを実行すると、ファイアウォール ログの生データを表示できます。
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| limit 10
これは次のクエリのようになります。
リソース固有のテーブルを使用する場合、次のクエリを実行すると、ファイアウォール ログ内の生データを表示できます。 リソース固有のテーブルの詳細については、監視データのリファレンスを参照してください。
AGWFirewallLogs
| limit 10
データにドリルダウンして、ここからグラフをプロットしたり、視覚エフェクトを作成したりできます。 使用できる AzureDiagnostics クエリの例をさらにいくつか示します。
IP ごとの一致/ブロック要求数
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize count() by clientIp_s, bin(TimeGenerated, 1m)
| render timechart
URI ごとの一致/ブロック要求数
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize count() by requestUri_s, bin(TimeGenerated, 1m)
| render timechart
上位の一致ルール
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize count() by ruleId_s, bin(TimeGenerated, 1m)
| where count_ > 10
| render timechart
上位 5 つの一致ルール グループ
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize Count=count() by details_file_s, action_s
| top 5 by Count desc
| render piechart
ダッシュボードに追加する
クエリを作成した後は、それをダッシュボードに追加できます。 Log Analytics ワークスペースの右上にある [ダッシュボードにピン留め] を選択します。 前の 4 つのクエリをサンプル ダッシュボードにピン留めすると、データをひとめで確認できるようになります。