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 つのクエリをサンプル ダッシュボードにピン留めすると、データをひとめで確認できるようになります。