다음을 통해 공유

使用 Log Analytics 检查应用程序网关日志

应用程序网关正常运行后,可以启用日志来检查资源发生的事件。 例如,应用程序网关防火墙日志提供有关 Web 应用程序防火墙 (WAF) 正在评估、匹配和阻止的内容的见解。 通过 Log Analytics,可以检查防火墙日志内的数据,从而获得更多见解。 有关日志查询的详细信息,请参阅 Azure Monitor 中的日志查询概述

在本文中,我们将了解 Web 应用程序防火墙 (WAF) 日志。 你可以用类似的方式设置其他应用程序网关日志

先决条件

发送日志

若要将防火墙日志导出到 Log Analytics,请参阅应用程序网关的诊断日志。 当 Log Analytics 工作区中有防火墙日志时,你可以查看数据、编写查询、创建可视化效果,并将这些内容添加到门户仪表板。

通过运行示例浏览数据

使用 AzureDiagnostics 表时,可以通过运行以下查询来查看防火墙日志中的原始数据:

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

这类似于以下示例:

Log Analytics 查询的屏幕截图。

使用特定于资源的表时,可以通过运行以下查询来查看防火墙日志中的原始数据。 若要了解特定于资源的表,请访问监视数据参考

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

前五个匹配的规则组

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

添加到仪表板

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

屏幕截图显示了可在其中添加查询的 Azure 仪表板。

后续步骤

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