你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Log Analytics 来检查应用程序网关 Web 应用程序防火墙 (WAF) 日志
应用程序网关 WAF 正常运行之后,你可以启用日志来检查每一个请求所发生的情况。 通过防火墙日志可深入了解 WAF 所评估、匹配和阻止的内容。 通过 Log Analytics,可以检查防火墙日志内的数据,从而获得更多见解。 有关日志查询的详细信息,请参阅 Azure Monitor 中的日志查询概述。
先决条件
- 需要一个具有活动订阅的 Azure 帐户。 如果你没有帐户,可以免费创建一个帐户。
- 启用了日志的 Azure Web 应用程序防火墙。 有关详细信息,请参阅应用程序网关中的 Web 应用程序防火墙 (WAF)。
- Log Analytics 工作区。 若要详细了解如何创建 Log Analytics 工作区,请参阅在 Azure 门户中创建 Log Analytics 工作区。
导入 WAF 日志
若要将防火墙日志导入 Log Analytics,请参阅应用程序网关的后端运行状况、诊断日志和指标。 当 Log Analytics 工作区中有防火墙日志时,你可以查看数据、编写查询、创建可视化效果,并将这些内容添加到门户仪表板。
通过运行示例浏览数据
若要查看防火墙日志中的原始数据,可运行以下查询:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
这类似于以下示例:
可以向下钻取数据,并在此绘制图表或创建可视化效果。 请参阅以下查询作为入门示例:
按 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
添加到仪表板
创建查询后,可将其添加到仪表板。 选择日志分析工作区右上方的“固定到仪表板”。 上述四个查询固定到示例仪表板后,这些数据就可以一目了然: