使用 Log Analytics 来检查应用程序网关 Web 应用程序防火墙 (WAF) 日志

应用程序网关 WAF 正常运行之后,你可以启用日志来检查每一个请求所发生的情况。 通过防火墙日志可深入了解 WAF 所评估、匹配和阻止的内容。 通过 Log Analytics,可以检查防火墙日志内的数据,从而获得更多见解。 有关日志查询的详细信息,请参阅 Azure Monitor 中的日志查询概述

先决条件

导入 WAF 日志

若要将防火墙日志导入 Log Analytics,请参阅应用程序网关的后端运行状况、诊断日志和指标。 当 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

前五个匹配的规则组

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize Count=count() by details_file_s, action_s
| top 5 by Count desc
| render piechart

添加到仪表板

创建查询后,可将其添加到仪表板。 选择日志分析工作区右上方的“固定到仪表板”。 上述四个查询固定到示例仪表板后,这些数据就可以一目了然:

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

后续步骤

应用程序网关的后端运行状况、诊断日志和指标