Azure 防火墙监视数据参考

本文包含此服务的所有监视参考信息。

有关可以为 Azure 防火墙收集的数据及其使用方法的详细信息,请参阅监视 Azure 防火墙

Metrics

本部分列出了为此服务自动收集的所有平台指标。 这些指标也是 Azure Monitor 中支持的所有平台指标的全局列表的一部分。

有关指标保留的信息,请参阅 Azure Monitor 指标概述

Microsoft.Network/azureFirewalls 支持的指标

下表列出了可用于 Microsoft.Network/azureFirewalls 资源类型的指标。

表标题

  • 指标 是该指标在 Azure 门户中的显示名称。
  • Rest API 中的名称 - 在 REST API 中引用的指标名称。
  • 单位 - 度量单位。
  • 聚合 - 默认的聚合类型。 有效值:平均值、最小值、最大值、总计、计数。
  • 维度 - 适用于指标的维度。
  • 时间粒度 - 对指标采样的间隔。 例如,PT1M 表示该指标每分钟采样一次,PT30M 表示每 30 分钟一次,PT1H 表示每小时一次,以此类推。
  • DS 导出 - 是否可通过诊断设置将指标导出到 Azure Monitor 日志。 要了解如何导出指标的信息,请参阅在 Azure Monitor 中创建诊断设置
Metric REST API 中的名称 Unit Aggregation Dimensions 时间粒度 DS 导出
应用程序规则命中计数

应用程序规则命中次数
ApplicationRuleHit Count 总计(总和) StatusReasonProtocol PT1M Yes
已处理的数据

此防火墙处理的数据总量
DataProcessed Bytes 总计(总和) <无> PT1M Yes
防火墙运行状况状态

指示此防火墙的总体运行状况
FirewallHealth Percent Average StatusReason PT1M Yes
延迟探测 (预览版)

根据延迟探测测量的防火墙的平均延迟估计
FirewallLatencyPng Milliseconds Average <无> PT1M Yes
网络规则命中计数

命中网络规则的次数
NetworkRuleHit Count 总计(总和) StatusReason PT1M Yes
观察到的容量单位

报告 Azure 防火墙的容量单位数
ObservedCapacity 未指定 平均值、最小值、最大值 <无> PT1M Yes
SNAT 端口利用率

当前正在使用的出站 SNAT 端口百分比
SNATPortUtilization Percent 平均值、最大值 Protocol PT1M Yes
Throughput

此防火墙处理的吞吐量
Throughput BitsPerSecond Average <无> PT1M No

观察到的容量

观察容量指标是了解防火墙在实践中如何缩放的主要工具。

使用观察容量的最佳做法

  • 验证预缩放设置: 确认防火墙一致地维护定义的 minCapacity。
  • 跟踪实时缩放行为: 使用 Avg 聚合查看实时容量单位。
  • 预测未来需求: 将历史观察容量与流量趋势(例如每月高峰或季节性事件)相结合,以优化容量规划。
  • 设置主动警报: 在观察到的容量阈值上配置 Azure Monitor 警报(例如,当缩放超过 80% maxCapacity 时发出警报)。
  • 与性能指标相关联: 将观察到的容量与吞吐量、延迟探测和 SNAT 端口利用率配对,以诊断缩放是否符合需求。

防火墙运行状况

在上表中,防火墙运行状况状态指标有两个维度:

  • 状态:可能的值为 “正常”、“ 降级”、“ 不正常”。
  • 原因:指示防火墙出现相应状态的原因。

如果使用的 SNAT 端口超过 95 个%,则它们被视为已用尽,运行状况为 50%,状态为“已降级 ”且 reason=SNAT 端口。 防火墙继续处理流量,现有连接不受影响。 但是,系统可能不会间歇地建立新连接。

如果 SNAT 端口使用率小于 95%,则防火墙状态视为“正常”,运行状况显示为 100%。

如果系统未报告 SNAT 端口使用率,则运行状况显示为 0%。

SNAT 端口利用率

对于 SNAT 端口利用率指标,当你向防火墙添加更多公共 IP 地址时,会有更多的 SNAT 端口可用,从而降低 SNAT 端口利用率。 此外,当防火墙出于不同的原因(例如 CPU 或吞吐量)而横向扩展后,可用的 SNAT 端口也会变得更多。

实际上,如果不添加任何公共 IP 地址,而只是横向扩展了服务,给定的 SNAT 端口利用率百分比实际上可能会下降。可以直接控制可用的公共 IP 地址数来增加防火墙上的可用端口。 但无法直接控制防火墙缩放。

如果防火墙耗尽了 SNAT 端口,则应至少添加五个公共 IP 地址。 这会增加可用 SNAT 端口数。 有关详细信息,请参阅 Azure 防火墙功能

AZFW 延迟探测

AZFW 延迟探测指标以毫秒为单位度量 Azure 防火墙的总体或平均延迟。 管理员可以将此指标用于以下目的:

  • 诊断 Azure 防火墙是否导致网络延迟
  • 监视和警报延迟或性能问题,以便 IT 团队可以主动参与
  • 确定可能导致 Azure 防火墙中高延迟的各种因素,例如 CPU 使用率高、吞吐量高或网络问题

AZFW 延迟探测指标度量值

  • 措施: Azure 平台中的 Azure 防火墙延迟
  • 不度量: 整个网络路径的端到端延迟。 该指标反映防火墙内的性能,而不是 Azure 防火墙引入网络的延迟
  • 错误报告: 如果延迟指标无法正常运行,它会在指标仪表板中报告值 0,指示探测失败或中断

影响延迟的因素

多种因素可能会影响防火墙延迟:

  • CPU 利用率较高
  • 高吞吐量或流量负载
  • Azure 平台中的网络问题

延迟探测:从 ICMP 到 TCP

延迟探测目前使用基于 ICMP(Internet 控制消息协议)的 Azure Ping 网格技术。 ICMP 适用于快速运行状况检查,例如 ping 请求,但它可能无法准确表示通常依赖于 TCP 的实际应用程序流量。 但是,ICMP 探测在 Azure 平台中以不同的优先级排列优先级,这可能会导致 SKU 的不同。 为了减少这些差异,Azure 防火墙计划会过渡到基于 TCP 的探测。

重要注意事项:

  • 延迟峰值: 使用 ICMP 探测时,间歇性峰值是正常的,也是主机网络标准行为的一部分。 请勿将这些峰值误解释为防火墙问题,除非它们仍然存在。
  • 平均延迟: Azure 防火墙平均延迟范围为 1 毫秒到 10 毫秒,具体取决于防火墙 SKU 和部署大小。

监视延迟的最佳做法

  • 设置基线:在流量较小的情况下建立延迟基线,以便在正常或高峰使用期间进行准确的比较。

    注释

    建立基线时,由于最近的基础结构更改,预期偶尔会出现指标峰值。 这些临时峰值是正常的,是由指标报告调整的结果,而不是实际问题造成的。 仅当高峰持续存在时,才提交支持请求。

  • 监视模式:在正常运行过程中,偶尔会出现延迟高峰。 如果高延迟持续时间超出这些正常变化范围,则可能表示需要调查更深层次的问题。

  • 建议的延迟阈值:建议的准则是延迟不应当超过基线的 3 倍。 如果超过此阈值,建议作进一步调查。

  • 检查规则限制:确保网络规则在 20K 规则限制之内。 超出此限制会影响性能。

  • 加入新应用程序:检查是否有新加入的应用程序,该应用程序增加了大量负载或导致延迟问题。

  • 支持请求:如果观察到与预期行为不符的连续延迟降级,请考虑提交支持票证以获取进一步帮助。

    显示 Azure 防火墙延迟探测指标的屏幕截图。

指标维度

有关指标维度的信息,请参阅 多维指标

此服务具有以下与其指标关联的维度。

  • Protocol
  • Reason
  • Status

资源日志

本部分列出了可为此服务收集的资源日志类型。 本部分拉取自 Azure Monitor 支持的所有资源日志类别类型列表。

Microsoft.Network/azureFirewalls 支持的资源日志

Category 类别显示名称 日志表 支持基本日志计划 支持引入时转换 示例查询 导出成本
AZFWApplicationRule Azure 防火墙应用程序规则 AZFWApplicationRule

包含所有应用程序规则日志数据。 数据平面和应用程序规则之间的每个匹配项都会创建一个日志条目,其中包含数据平面数据包和所匹配规则的属性。

Yes Yes Queries Yes
AZFWApplicationRuleAggregation Azure 防火墙网络规则聚合(策略分析) AZFWApplicationRuleAggregation

包含策略分析的聚合应用程序规则日志数据。

Yes Yes Yes
AZFWDnsAdditional Azure 防火墙 DNS 流跟踪日志 AzureDiagnostics

来自多个 Azure 资源的日志。

No No Queries Yes
AZFWDnsQuery Azure 防火墙 DNS 查询 AZFWDnsQuery

包含所有 DNS 代理事件日志数据。

Yes Yes Queries Yes
AZFWFatFlow Azure 防火墙 Fat Flow 日志 AZFWFatFlow

此查询返回跨 Azure 防火墙实例的顶级流。 日志包含流信息、日期传输速率(以兆位/秒单位为单位)和记录流的时间段。 请按照文档作,启用 Top Flow 日志记录,并详细了解记录方式。

Yes Yes Queries Yes
AZFWFlowTrace Azure 防火墙流跟踪日志 AZFWFlowTrace

跨 Azure 防火墙实例流日志。 日志包含流信息、标志和记录流的时间段。 请按照文档作,启用流跟踪日志记录及其记录方式的详细信息。

Yes Yes Queries Yes
AZFWFqdnResolveFailure Azure 防火墙 FQDN 解决失败 No No Yes
AZFWIdpsSignature Azure 防火墙 IDPS 签名 AZFWIdpsSignature

包含与一个或多个 IDPS 签名匹配的所有数据平面数据包。

Yes Yes Queries Yes
AZFWNatRule Azure 防火墙 Nat 规则 AZFWNatRule

包含所有 DNAT(目标网络地址转换)事件日志数据。 数据平面和 DNAT 规则之间的每个匹配项都会创建一个日志条目,其中包含数据平面数据包和所匹配规则的属性。

Yes Yes Queries Yes
AZFWNatRuleAggregation Azure 防火墙 Nat 规则聚合(策略分析) AZFWNatRuleAggregation

包含策略分析的聚合 NAT 规则日志数据。

Yes Yes Yes
AZFWNetworkRule Azure 防火墙网络规则 AZFWNetworkRule

包含所有网络规则日志数据。 数据平面和网络规则之间的每个匹配项都会创建一个日志条目,其中包含数据平面数据包和所匹配规则的属性。

Yes Yes Queries Yes
AZFWNetworkRuleAggregation Azure 防火墙应用程序规则聚合(策略分析) AZFWNetworkRuleAggregation

包含策略分析的聚合网络规则日志数据。

Yes Yes Yes
AZFWThreatIntel Azure 防火墙威胁情报 AZFWThreatIntel

包含所有威胁情报事件。

Yes Yes Queries Yes
AzureFirewallApplicationRule Azure 防火墙应用程序规则(旧版 Azure 诊断) AzureDiagnostics

来自多个 Azure 资源的日志。

No No Queries No
AzureFirewallDnsProxy Azure 防火墙 DNS 代理(旧版 Azure 诊断) AzureDiagnostics

来自多个 Azure 资源的日志。

No No Queries No
AzureFirewallNetworkRule Azure 防火墙网络规则 (旧版 Azure 诊断) AzureDiagnostics

来自多个 Azure 资源的日志。

No No Queries No

DNS 流跟踪日志

DNS 流跟踪日志可更深入地了解 DNS 活动,帮助管理员排查解决问题并验证流量行为。

以前,DNS 代理日志记录仅限于:

  • AZFWDNSQuery - 初始客户端查询
  • AZFWInternalFqdnResolutionFailure - FQDN 解析失败

使用 DNS 流跟踪日志,管理员可以将完整的 DNS 解析流从客户端查询作为 DNS 代理通过 Azure 防火墙跟踪到外部 DNS 服务器,并返回到客户端。

DNS 解析阶段

日志捕获以下阶段:

  1. 客户端查询:客户端发送的初始 DNS 查询
  2. 转发器查询:将查询转发到外部 DNS 服务器的 Azure 防火墙(如果未缓存)
  3. 转发器响应:DNS 服务器对 Azure 防火墙的响应
  4. 客户端响应:从 Azure 防火墙返回到客户端的最终解析响应

下图显示了 DNS 查询流的高级视觉表示形式:

显示从客户端到 Azure 防火墙到外部 DNS 服务器和回发的 DNS 查询流的关系图。

这些日志提供有价值的见解,例如:

  • 查询的 DNS 服务器
  • 解析的 IP 地址
  • 是否使用了 Azure 防火墙缓存

启用 DNS 流跟踪日志

在设置 DNS 流跟踪日志之前,必须先使用 Azure PowerShell 启用该功能。

启用日志(先决条件)

在 Azure PowerShell 中运行以下命令,将占位符替换为值:

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

禁用日志(可选)

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

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

配置 DNS 代理和 DNS 流跟踪日志

使用以下步骤配置 DNS 代理并启用 DNS 流跟踪日志:

  1. 启用 DNS 代理:

    1. 导航到 Azure 防火墙 DNS 设置并启用 DNS 代理。
    2. 配置自定义 DNS 服务器或使用默认的 Azure DNS。
    3. 导航到虚拟网络 DNS 设置,并将防火墙的专用 IP 设置为主 DNS 服务器。
  2. 启用 DNS 流跟踪日志:

    1. 在 Azure 门户中导航到 Azure 防火墙。
    2. “监视”下选择“诊断设置”。
    3. 选择现有的诊断设置或创建新的诊断设置。
    4. 在“ 日志 ”部分下,选择 “DNS 流跟踪日志”。
    5. 选择所需的目标(Log Analytics、事件中心或存储帐户)。
    6. 保存设置。
  3. 测试配置:

    1. 从客户端生成 DNS 查询,并验证所选目标中的日志。

了解日志

每个日志条目对应于 DNS 解析过程中的特定阶段。 下表描述了日志类型和密钥字段:

类型 Description 密钥字段
Client Query 客户端发送的初始 DNS 查询。 SourceIp:发出 DNS 请求的客户端内部 IP 地址: QueryMessage完整的 DNS 查询有效负载,包括请求的域
Forwarder Query 将 DNS 查询转发到外部 DNS 服务器的 Azure 防火墙(如果未缓存)。 ServerIp:接收查询的外部 DNS 服务器的 IP 地址: QueryMessage转发的 DNS 查询有效负载,相同或基于客户端请求
Forwarder Response DNS 服务器的对 Azure 防火墙的响应。 ServerMessage:来自外部服务器的 DNS 响应有效负载。: AnswerSection包含解析的 IP 地址、CNAME 和任何 DNSSEC 验证结果(如果适用)。
Client Response 最终解析了从 Azure 防火墙回复到客户端的响应。 ResolvedIp:为查询域解析的 IP 地址(或地址)。 ResponseTime:解析查询所用的总时间(从客户端的请求到返回的答案)

上述字段只是每个日志条目中可用字段的子集。

重要说明:

  • 如果使用 DNS 缓存,则仅生成 客户端查询客户端响应 条目。
  • 日志包括标准元数据,例如时间戳、源/目标 IP、协议和 DNS 消息内容。
  • 若要避免在具有许多短期查询的环境中过多的日志量,请仅在需要更深入的 DNS 故障排除时启用其他 DNS 代理日志。

顶部流

排名靠前的流日志在行业内称为 Fat 流日志,在上表中称为 Azure 防火墙 Fat 流日志。 顶部流日志显示通过防火墙导致最高吞吐量的顶级连接。

Tip

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

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

启用顶级流日志

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

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 屏幕截图。

若要创建诊断设置并启用特定于资源的表,请参阅在 Azure Monitor 中创建诊断设置

流跟踪

防火墙日志在 TCP 连接(称为 SYN 数据包)的第一次尝试中显示通过防火墙的流量。 但是,此类条目不会在 TCP 握手中显示数据包的完整历程。 因此,如果数据包被删除或发生非对称路由,则很难进行故障排除。 Azure 防火墙流跟踪日志解决了此问题。

Tip

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

流跟踪属性

可添加以下属性:

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

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

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

  • RST:重置标志指示原始发送方未收到更多数据。

  • 无效(流):指示无法标识数据包或没有任何状态。

    例如:

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

启用流跟踪日志

使用以下 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"

禁用流跟踪日志

若要禁用日志,请使用以下 Azure PowerShell 命令:

Connect-AzAccount -Environment AzureChinaCloud 
Select-AzSubscription -Subscription <subscription_id> or <subscription_name>
$firewall = Get-AzFirewall -ResourceGroupName <ResourceGroupName> -Name <FirewallName>
$firewall.EnableTcpConnectionLogging = $false
Set-AzFirewall -AzureFirewall $firewall

若要创建诊断设置并启用特定于资源的表,请参阅在 Azure Monitor 中创建诊断设置

Azure Monitor 日志表

本部分列出了与此服务相关的 Azure Monitor 日志表,日志分析可使用 Kusto 查询来查询这些表。 这些表包含资源日志数据,此外还可能包含其他数据,具体取决于所收集并路由到这些表的内容。

Azure 防火墙 Microsoft.Network/azureFirewalls

活动日志

链接表列出了可在此服务的活动日志中记录的操作。 这是活动日志中所有可能的资源提供程序操作的子集。

有关活动日志条目架构的详细信息,请参阅活动日志架构