使用 Log Analytics 检查应用程序网关日志
应用程序网关正常运行后,可以启用日志来检查资源发生的事件。 例如,应用程序网关防火墙日志提供有关 Web 应用程序防火墙 (WAF) 正在评估、匹配和阻止的内容的见解。 通过 Log Analytics,可以检查防火墙日志内的数据,从而获得更多见解。 有关日志查询的详细信息,请参阅 Azure Monitor 中的日志查询概述。
在本文中,我们将了解 Web 应用程序防火墙 (WAF) 日志。 你可以用类似的方式设置其他应用程序网关日志。
先决条件
- 需要一个具有活动订阅的 Azure 帐户。 如果还没有帐户,可以创建一个帐户。
- Azure 应用程序网关 WAK SKU。 有关详细信息,请参阅应用程序网关中的 Web 应用程序防火墙 (WAF)。
- Log Analytics 工作区。 若要详细了解如何创建 Log Analytics 工作区,请参阅在 Azure 门户中创建 Log Analytics 工作区。
发送日志
若要将防火墙日志导出到 Log Analytics,请参阅应用程序网关的诊断日志。 当 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
前五个匹配的规则组
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayFirewallLog"
| summarize Count=count() by details_file_s, action_s
| top 5 by Count desc
| render piechart
添加到仪表板
创建查询后,可将其添加到仪表板。 选择日志分析工作区右上方的“固定到仪表板”。 上述四个查询固定到示例仪表板后,这些数据就可以一目了然: