你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是容器网络日志(预览版)?

重要

组件重命名(从 2025 年 11 月 11 日开始)

我们正在重命名容器网络日志功能中的组件,以提高清晰度和一致性:

有什么变化

  • CRDRetinaNetworkFlowLogsContainerNetworkLog
  • CLI 标志--enable-retinanetworkflowlog--enable-container-network-logs
  • Log Analytics 表RetinaNetworkFlowLogsContainerNetworkLog

为现有用户启用新命名的拟办事项

  1. 更新 Azure CLI (必须 - 第一步!):

    az upgrade
    
  2. 更新预览版 CLI 扩展 (必须):

    az extension update --name aks-preview
    
  3. 禁用监视

    az aks disable-addons -a monitoring -n <cluster-name> -g <resource-group>
    
  4. 重新启用监视

    az aks enable-addons -a monitoring --enable-high-log-scale-mode -g <resource-group> -n <cluster-name>
    
  5. 重新启用 ACNS 容器网络日志

    az aks update --enable-acns --enable-container-network-logs -g <resource-group> -n <cluster-name>
    
  6. 应用新的 ContainerNetworkLog CRD:使用新的命名来应用更新的 CRD 配置文件。

  7. 重新导入 Grafana 仪表板:导入更新的仪表板以反映新的表名称。

注释

  • 以前收集的数据保留在旧表 RetinaNetworkFlowLogs 的工作区中。
  • 重新启用后,允许在新的表 ContainerNetworkLog 中显示新数据之前进行短暂延迟。

Azure Kubernetes 服务 (AKS) 的 高级容器网络服务 中的容器网络日志提供对群集中每个网络流的上下文丰富的全面可见性。 当指标告知网络(例如带宽使用率或错误率)中发生 的情况 时,容器网络日志通过捕获每个连接的完整情景(包括启动连接的人员、使用哪些协议以及是否允许或阻止流量)来告诉你 原因

这些日志捕获每个网络流的基本元数据,包括源 IP 地址和目标 IP 地址、Pod 和服务名称、命名空间、端口、协议、流量方向和策略判决。 此深度上下文信息使你能够将网络行为与特定工作负荷相关联,排查连接问题、验证安全策略和执行取证分析。

容器网络日志捕获第 3 层(IP)、第 4 层(TCP/UDP)和第 7 层(HTTP/gRPC/Kafka)流量,提供监视连接、排查问题、可视化网络拓扑、强制实施安全策略并确保符合性的详细见解。

从两种模式中进行选择:

  • 存储的日志
  • 按需日志

存储的日志

启用高级容器网络服务并设置自定义筛选器时,存储日志模式可确保在 AKS 群集中持续生成和收集日志。 默认情况下,日志收集处于禁用状态。

若要启用日志收集,请定义 自定义资源 以指定要监视的流量类型。 示例包括命名空间、Pod、服务和协议。 此功能保持活动状态,直到禁用此功能。

存储日志模式支持扩展日志保留和流量筛选。 为了降低存储成本和更轻松的分析,可以仅收集和保留与你相关的日志。

存储日志模式的工作原理

高级容器网络服务通过 Cilium 使用 eBPF 技术从群集中的节点提取日志。 若要开始收集日志,请定义一个或多个自定义资源,以指定要监视的流量类型。

自定义资源提供精细的控制,用于定义和捕获与你相关的流量。 在每个节点上运行的 Cilium 代理收集与自定义资源中设置的条件匹配的网络流量。 日志以 JSON 格式存储在主机上,提供结构化且可访问的格式供进一步使用。

或者,如果启用了 Azure 监视加载项,容器洞察的代理会从主机收集日志,应用默认的限制速率,并将其发送到 Log Analytics 工作区。 系统有效地聚合和存储日志,以提供网络流量的可见性,以便监视、故障排除和安全强制实施。

容器网络日志工作原理图。

若要详细了解限流和容器见解,请参阅容器见解文档

存储日志模式的关键功能

  • 可自定义的筛选器。 可以通过定义 ContainerNetworkLog 类型的自定义资源来配置日志记录。 使用自定义资源,按命名空间、Pod、服务、端口、协议、判定结果或流量方向(入口或出口)应用细粒度筛选器。 这种灵活性可确保根据特定用例定制的精确数据收集。 仅记录相关流量,并优化存储以提高性能、合规性和故障排除。

  • 日志存储选项。 容器网络日志功能具有两个主要存储选项:非托管存储和托管存储。

    • 非托管存储: 应用自定义资源开始日志收集时,网络流日志将本地存储在固定装载位置的 /var/log/acns/hubble 主机节点上。 此存储位置是临时的,因为节点本身不是永久性存储解决方案。 当日志文件的大小达到 50 MB 时,它们会自动轮换并覆盖较旧的日志。 此存储解决方案适用于实时监视,但它不支持长期存储或保留。

      对于其他日志管理功能,可以集成合作伙伴日志记录服务,例如 OpenTelemetry 收集器。 合作伙伴集成提供在 Azure 生态系统外部管理日志的灵活性,如果已部署特定的日志管理平台,则非常有用。

    • 托管存储: 对于长期保留和高级分析,我们建议在 AKS 群集中配置 Azure 监视,以便在 Log Analytics 工作区中收集和存储日志。 此设置可确保安全且合规的日志存储。 它还提供对强大的功能(如异常情况检测、性能优化和历史数据分析)的访问。 可以使用历史日志来识别趋势、基线行为,并主动解决定期问题。

      例如,可以使用 Prometheus 的托管服务来配置指标和日志上的警报,以便实时监视和快速检测离群值。

      将同一工作区用于日志存储。 在上机过程中设置日志存储空间。 此功能支持分析和基础日志表方案。 有关表格方案的详细信息,请参阅 Azure Monitor 日志

  • 在 Log Analytics 和 Grafana 仪表板中的简单可视化。 Grafana 仪表板中显示的日志和数据可简化复杂信息,促进数据理解,并帮助你更快地做出决策。

在 Azure 门户中日志可视化

可以在群集的 Log Analytics 工作区的 Azure 门户中可视化、查询和分析流日志。

Log Analytics 工作区中容器网络日志的屏幕截图。

Grafana 仪表板中的日志可视化

  • 访问 Azure 托管 Grafana 实例中的流日志。

    为了简化日志分析,我们提供了两个预配置的 Grafana 仪表板:

    • 转到 Azure>Insights>容器>网络>流日志。 此仪表板显示哪些 AKS 工作负载相互通信,包括网络请求、响应、删除和错误。 目前,在预览阶段,作为临时步骤,您必须通过使用用户 ID 导入 Grafana 仪表板,以便在 Azure 门户中查看流日志仪表板。

      托管 Grafana 实例中流日志 Grafana 仪表板的屏幕截图。

    • 转到 Azure>Insights>容器>网络>流日志(外部流量)。 此仪表板显示哪些 AKS 工作负载从 AKS 群集外部发送和接收通信,包括网络请求、响应、删除和错误。

      托管 Grafana 实例中流日志(外部)Grafana 仪表板的屏幕截图。

      有关详细信息,请参阅 使用高级容器网络服务来设置 Azure 托管的 Grafana

  • 使用 Grafana 选项通过仪表板访问 Azure 门户中的流日志。

    Azure Monitor 中 Grafana 仪表板的屏幕截图。

Azure 门户仪表板具有以下主要组件:

  • 网络运行状况的全面概述。 你会看到关键指标,例如总流日志、唯一请求、已删除的请求和转发的请求,以便快速检测异常和高效的故障排除。 仪表板按协议和行为对统计信息进行分类,包括 DNS 删除的请求、HTTP 2xx 响应、第 4 层请求和响应速率以及丢弃的请求计数。 服务依赖项图可视化应用程序或群集交互,突出显示流量流、瓶颈和依赖项,以优化性能。

    流日志统计信息和服务依赖项图的屏幕截图。

  • 流日志和错误日志用于快速分析。 可以筛选流日志,以便进行根本原因分析。 例如,若要排查域名系统(DNS)问题,请按 DNS 协议筛选错误日志。

    流日志和错误日志的屏幕截图。

    分离流日志和错误日志有助于更快地分析问题。 你可以识别和解决错误,而无需筛选不相关的信息,从而提高故障排除和调试过程的效率。

    为每个日志条目使用清晰的标签和时间戳,以便更轻松地在系统或进程中查明特定事件或错误。

    Azure 门户仪表板中可用筛选器的屏幕截图。

  • 排名靠前的命名空间、工作负载和 DNS 错误。 网络流日志可视化对于监视和分析 AKS 群集中的通信至关重要。 它提供命名空间、工作负载、端口使用情况和查询使用情况的见解。 它有助于识别趋势、检测瓶颈和诊断问题。 发现重要的网络活动、查看已删除的请求并评估协议分发(例如 TCP 与 UDP)。 仪表板的此概述部分通过检测和显示异常流量模式,支持群集运行状况、资源优化和安全性。

    顶部命名空间和 Pod 指标的屏幕截图。

按需日志

高级容器网络服务提供对网络流日志的按需捕获。 使用 Hubble CLI 和 Hubble UI 获取实时可见性,而无需事先配置或持久性存储。 此按需日志模式可用。 若要了解如何设置按需日志存储,请参阅 配置 Hubble CLI 和 Hubble UI

Hubble CLI

Hubble 命令行接口(CLI)提供了一种灵活的交互式方法,用于直接在终端中查询、筛选和分析流日志。 可以执行实时命令来检查流量流、查看数据包元数据以及排查网络问题,而无需离开作环境。

Hubble CLI 的屏幕截图。

Hubble 用户界面

基于 Hubble Web 的界面提供直观的可视化平台用于监视。 借助实时流量仪表板、流摘要和可搜索日志等功能,可以轻松跟踪服务到服务通信、检测异常并深入了解群集活动。

Hubble UI 工具提供实时可见性和可作见解,以便更快地进行故障排除和改进的网络管理。

Hubble UI 的屏幕截图。

按需日志的主要优势

  • 更快地解决问题。 通过对网络流量的详细且可作的见解,可以更快地识别和解决连接或性能问题,最大限度地减少停机时间和中断。
  • 优化了运营效率。 聚合且高效地存储的日志可降低数据管理开销。 你的团队可以专注于分析和决策,而不是管理大量的原始数据。
  • 增强了应用程序可靠性。 通过监视服务到服务通信并检测异常,可以主动解决潜在问题,并确保更流畅、更可靠的应用程序体验。
  • 改进了决策。 在 Azure 托管 Grafana 中可视化网络模式并应用服务映射可提供对应用程序网络行为的清晰见解。 这会导致改进基础结构规划和优化。
  • 节约成本。 高效的日志聚合和可自定义的日志记录范围可降低存储和数据引入成本,为长期网络监视提供经济高效的解决方案。
  • 简化的合规性和安全性。 持久和全面的日志支持审核线索、法规合规性以及可疑流量的快速识别。 它们可帮助你维护安全合规的环境。

局限性

  • 存储日志模式下的容器网络日志目前仅适用于 Cilium 数据平面。
  • 仅当启用第 7 层策略支持时,才会捕获第 7 层流日志。 有关详细信息,请参阅 配置第 7 层策略
  • 仅当应用 Cilium 完全限定域(FQDN)网络策略时,才会捕获 DNS 流和指标。 有关详细信息,请参阅 配置 FQDN 策略
  • 目前不支持使用 Terraform 加入。
  • 如果未为日志存储配置 Log Analytics,容器网络日志将限制为最多 50 MB 的存储。 达到此限制后,新条目将覆盖旧日志。
  • 如果表格方案设置为基础日志,则预生成的 Grafana 仪表板无法使用。
  • 不支持辅助日志表计划。

定价

重要

高级容器网络服务是一项付费服务。

有关定价的详细信息,请参阅高级容器网络服务 - 定价