Log Analytics を使用して Application Gateway Web アプリケーション ファイアウォール (WAF) のログを調べる

Application Gateway の WAF が動作するようになったら、ログを有効にして、各要求で起きていることを調べることができます。 ファイアウォールのログでは、WAF で評価、照合、ブロックされていることについての分析情報が提供されます。 Log Analytics では、ファイアウォール ログ内のデータを調べて、さらに多くの分析情報を得ることができます。 ログ クエリについて詳しくは、「Azure Monitor のログ クエリの概要」をご覧ください。

前提条件

WAF のログをインポートする

ファイアウォールのログを Log Analytics にインポートするには、「Application Gateway のバックエンドの正常性、診断ログ、およびメトリック」を参照してください。 Log Analytics ワークスペース内にファイアウォールのログを取得したら、データの表示、クエリの記述、視覚エフェクトの作成、ポータルのダッシュボードへの追加を行うことができます。

例でデータを調べる

ファイアウォール ログの生のデータを表示するには、次のクエリを実行できます。

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"

これは次のクエリのようになります。

Screenshot of Log Analytics query.

データにドリルダウンして、ここからグラフをプロットしたり、視覚エフェクトを作成したりできます。 出発点として、次のクエリをご覧ください。

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

Screenshot shows an Azure dashboard where you can add your query.

次のステップ

Application Gateway のバックエンドの正常性、診断ログ、およびメトリック