Azure 防火墙指标和警报

Azure Monitor 中的指标是数字值,用于描述系统某些方面在特定时间的情况。 指标每分钟收集一次,可用于警报,因为可对其频繁采样。 可以使用相对简单的逻辑快速激发警报。

防火墙指标

以下指标适用于 Azure 防火墙:

  • 应用程序规则命中计数 - 应用程序规则的命中次数。

    单位:计数

  • 网络规则命中计数 - 网络规则的命中次数。

    单位:计数

  • 已处理的数据 - 在给定时间范围内遍历防火墙的数据总和。

    单位:字节

  • 吞吐量 - 数据每秒遍历防火墙的速率。

    单位:每秒位数

  • 防火墙运行状况状态 - 基于 SNAT 端口可用性指示防火墙的运行状况。

    单位:百分比

    该指标包含两个维度:

    • 状态:可能的值为“正常”、“已降级”和“不正常”。

    • 原因:指示防火墙出现相应状态的原因。

      如果已用 SNAT 端口数 > 95%,则视为该端口已用尽,并且运行状况为 50%,状态为“已降级”,原因为“SNAT 端口”。 防火墙继续处理流量,现有连接不受影响。 但是,系统可能不会间歇地建立新连接。

      如果已用 SNAT 端口数 < 95%,则视为防火墙正常,并且运行状况显示为 100%。

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

  • SNAT 端口利用率 - 防火墙利用的 SNAT 端口数百分比。

    单位:百分比

    如果你将更多公共 IP 地址添加到防火墙,则更多的 SNAT 端口可用,从而降低 SNAT 端口的利用率。 此外,当防火墙出于不同的原因(例如 CPU 或吞吐量)而横向扩展后,可用的 SNAT 端口也会变得更多。 因此,如果不添加任何公共 IP 地址,而只是横向扩展了服务,给定的 SNAT 端口利用率百分比实际上可能会下降。可以直接控制可用的公共 IP 地址数来增加防火墙上的可用端口。 但无法直接控制防火墙缩放。

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

  • AZFW 延迟探测 - 估计 Azure 防火墙平均延迟。

    单位:毫秒

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

    • 诊断 Azure 防火墙是否是网络延迟的原因

    • 监视是否存在任何延迟或性能问题并发出警报,以便 IT 团队可以主动参与。

    • 导致 Azure 防火墙中出现高延迟的原因可能有多种。 例如,CPU 使用率高、吞吐量高或可能存在的网络问题。

      此指标不测量给定网络路径的端到端延迟。 换句话说,此延迟运行状况探测不会测量 Azure 防火墙增加了多少延迟。

    • 当延迟指标未按预期运行时,指标仪表板中会显示值 0。

    • 防火墙的平均预期延迟约为 1 毫秒(作为参考)。 这可能因部署大小和环境而异。

    • 延迟探测基于 Microsoft 的 Ping 网格技术。 因此,延迟指标出现间歇性峰值是意料之中的。 这些峰值是正常的,并不表示 Azure 防火墙存在问题。 它们是支持系统的标准主机网络设置的一部分。

      因此,如果遇到持续时间长于典型峰值的持续高延迟,请考虑提交支持票证以获取帮助。

      Screenshot showing the Azure Firewall Latency Probe metric.

有关 Azure 防火墙指标的警报

指标提供用于跟踪资源运行状况的关键信号。 因此,请务必监视资源的指标并注意任何异常。 但是,如果 Azure 防火墙指标停止流动,该怎么办? 这可能表示潜在的配置问题或更不祥的情况,例如中断。 由于发布阻止 Azure 防火墙上传指标的默认路由或正常实例数下降到零,因此可能会发生缺失的指标。 在本部分中,你将了解如何将指标配置为 Log Analytics 工作区,以及如何针对缺少的指标发出警报。

将指标配置为 Log Analytics 工作区

第一步是使用防火墙中的诊断设置配置 Log Analytics 工作区的指标可用性。

浏览到 Azure 防火墙资源页以配置诊断设置,如以下屏幕截图所示。 这会将防火墙指标推送到配置的工作区。

注意

指标的诊断设置必须是与日志不同的配置。 防火墙日志可配置为使用 Azure 诊断或特定于资源。 但是,防火墙指标必须始终使用 Azure 诊断。

Screenshot of Azure Firewall diagnostic setting.

创建警报以跟踪接收防火墙指标而不发生任何故障

浏览到指标诊断设置中配置的工作区。 使用以下查询检查指标是否可用:

AzureMetrics

| where MetricName contains "FirewallHealth"
| where ResourceId contains "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/PARALLELIPGROUPRG/PROVIDERS/MICROSOFT.NETWORK/AZUREFIREWALLS/HUBVNET-FIREWALL"
| where TimeGenerated > ago(30m)

接下来,为 60 分钟内缺少的指标创建警报。 浏览到 Log Analytics 工作区的警报页,以针对缺少的指标设置新警报。

Screenshot showing the Edit alert rule page.