在 Azure 防火墙中启用排名靠前的流和流跟踪日志

Azure 防火墙有两个新的诊断日志,可用于帮助监视防火墙:

  • 排名靠前的流
  • 流跟踪

排名靠前的流

排名靠前的流日志(行业内称为 Fat 流)可显示通过防火墙贡献最高吞吐量的前几个连接。

提示

仅在对特定问题进行排查时激活热门流日志,以避免 Azure 防火墙的 CPU 使用率过高。

流速率定义为数据传输速率(以 Mbps 为单位)。 换句话说,它可以度量在一段时间内可以通过防火墙在网络上传输的数字数据量。 Top Flows 协议每三分钟定期运行一次。 被视为 Top Flow 的最低阈值为 1 Mbps。

先决条件

启用日志

使用以下 Azure PowerShell 命令启用日志:

Set-AzContext -SubscriptionName <SubscriptionName>
$firewall = Get-AzFirewall -ResourceGroupName <ResourceGroupName> -Name <FirewallName>
$firewall.EnableFatFlowLogging = $true
Set-AzFirewall -AzureFirewall $firewall

禁用日志

若要禁用日志,请使用与前一个相同的 Azure PowerShell 命令并将值设置为 False

例如:

Set-AzContext -SubscriptionName <SubscriptionName>
$firewall = Get-AzFirewall -ResourceGroupName <ResourceGroupName> -Name <FirewallName>
$firewall.EnableFatFlowLogging = $false
Set-AzFirewall -AzureFirewall $firewall

验证更新

有几种方法可以验证更新是否成功,但你可以导航到防火墙“概述”并选择右上角的“JSON 视图”。 下面是一个示例:

显示其他日志验证的 JSON 屏幕截图。

创建诊断设置并启用特定于资源的表

  1. 在“诊断设置”选项卡中,选择“添加诊断设置”。
  2. 键入诊断设置名称。
  3. 在“类别”下选择“Azure 防火墙 Fat 流日志”以及要在防火墙中支持的任何其他日志。
  4. 在“目标详细信息”中,选择“发送到 Log Analytics”工作区
    1. 选择所需的订阅和预配置的 Log Analytics 工作区。
    2. 启用“特定于资源”。 显示日志目标详细信息的屏幕截图。

查看和分析 Azure 防火墙日志

  1. 在防火墙资源上,导航到“监视”选项卡下的“日志”。

  2. 选择“查询”,然后将鼠标悬停在选项上并选择“加载到编辑器”来加载“Azure 防火墙排名靠前的流日志”。

  3. 加载查询时,选择“运行”。

    显示排名排名靠前的流日志的屏幕截图。

流跟踪

目前,防火墙日志会显示首次尝试 TCP 连接时通过防火墙的流量,又称为 SYN 数据包。 但是,这不会在 TCP 握手中显示数据包的完整历程。 因此,如果丢弃数据包或发生非对称路由,将难以进行故障排除。

提示

为避免 Azure 防火墙中具有许多短期连接的流跟踪日志导致磁盘使用过多,请仅在出于诊断目的对特定问题进行排查时激活日志。

可添加以下附加属性:

  • SYN-ACK

    指示确认 SYN 数据包的 ACK 标志。

  • FIN

    原始数据包流的已完成标志。 不会在 TCP 流中传输更多数据。

  • FIN-ACK

    指示确认 FIN 数据包的 ACK 标志。

  • RST

    重置标志表示原始发送方没有收到更多数据。

  • INVALID(流)

    指示数据包无法标识或没有任何状态。

    例如:

    • TCP 数据包登陆在虚拟机规模集实例上,该实例对此数据包没有任何以前的历史记录
    • 错误的 CheckSum 数据包
    • 连接跟踪表条目已满,无法接受新连接
    • 过度延迟的 ACK 数据包

流跟踪日志(如 SYN-ACK 和 ACK)会专门记录网络流量。 此外,默认情况下不会记录 SYN 数据包。 但可以访问网络规则日志中的初始 SYN 数据包。

先决条件

启用日志

使用以下 Azure PowerShell 命令启用日志,或者在门户中导航并搜索“启用 TCP 连接日志记录”:

Connect-AzAccount -Environment AzureChinaCloud 
Select-AzSubscription -Subscription <subscription_id> or <subscription_name>
Register-AzProviderFeature -FeatureName AFWEnableTcpConnectionLogging -ProviderNamespace Microsoft.Network
Register-AzResourceProvider -ProviderNamespace Microsoft.Network

可能需要几分钟才能生效。 注册该功能后,请考虑对 Azure 防火墙执行更新,以便更改立即生效。

要检查 AzResourceProvider 注册的状态,可以运行 Azure PowerShell 命令:

Get-AzProviderFeature -FeatureName "AFWEnableTcpConnectionLogging" -ProviderNamespace "Microsoft.Network"

禁用日志

若要禁用日志,可使用以下命令取消注册日志,或者在上一个门户示例中选择“取消注册”。

Unregister-AzProviderFeature -FeatureName AFWEnableTcpConnectionLogging -ProviderNamespace Microsoft.Network

创建诊断设置并启用特定于资源的表

  1. 在“诊断设置”选项卡中,选择“添加诊断设置”。
  2. 键入诊断设置名称。
  3. “类别”下选择“Azure 防火墙流跟踪日志”以及要在防火墙中支持的任何其他日志。
  4. 在“目标详细信息”中,选择“发送到 Log Analytics”工作区
    1. 选择所需的订阅和预配置的 Log Analytics 工作区。
    2. 启用“特定于资源”。 显示日志目标详细信息的屏幕截图。

查看和分析 Azure 防火墙流跟踪日志

  1. 在防火墙资源上,导航到“监视”选项卡下的“日志”。

  2. 选择“查询”,然后将鼠标悬停在选项上并选择“加载到编辑器”来加载“Azure 防火墙流跟踪日志”。

  3. 加载查询时,选择“运行”。

    显示跟踪流日志的屏幕截图。

后续步骤