你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
高级容器网络服务中 Azure Kubernetes 服务的容器网络日志(AKS)可深入了解群集中的网络流量。 这些日志捕获基本元数据,包括源 IP 地址和目标 IP 地址、Pod/服务名称、端口、协议和流量方向,从而深入了解网络行为。 容器网络日志捕获第 3 层(IP)、第 4 层(TCP/UDP)和第 7 层(HTTP/gRPC/Kafka)流量。 这样就可以有效监视连接、故障排除、网络拓扑可视化和安全策略强制实施。 可以使用此功能的两种模式 - 存储的日志和按需日志。
存储的日志
启用高级容器网络服务并配置自定义筛选器时,此模式可确保 AKS 群集上的连续日志生成和收集。 日志收集默认处于禁用状态。 用户可以通过定义自定义资源(CR)来启用日志收集,以指定要监视的流量类型,例如命名空间、Pod、服务或协议。 此功能保持活动状态,直到客户显式禁用,从而允许延长日志保留期。 此功能支持筛选流量,这允许收集和保留与用户相关的日志,从而降低存储成本,并简化分析。 可以通过定义特定类型的自定义资源(CR)来实现流量筛选。
存储日志模式的工作原理
高级容器网络服务通过 Cilium 利用 ebpf 技术从节点中提取日志。 若要开始收集日志,用户定义一个或多个自定义资源(CR),以指定要监视的流量类型。 这些 PR 允许精细控制,确保仅捕获相关的流量。 在每个节点上运行的 Cilium 代理收集与 CR 中设置的条件匹配的网络流量。 然后,日志以 JSON 格式存储在主机上,提供结构化且可访问的格式供进一步使用。 或者,如果启用了 Azure 监视加载项,则 Container Insights 的代理会从主机收集日志,应用默认限制,并将其发送到 Azure Log Analytics 工作区。 系统高效聚合和存储日志,提供网络流量的可见性,用于监视、故障排除和安全性。
若要详细了解限流和容器洞察,请参阅 Container Insights 文档。
存储日志模式的关键功能
可自定义筛选器:可以通过定义 RetinaNetworkFlowLog 类型的自定义资源(CR)来配置日志记录。 使用这些 CR,用户可以按命名空间、Pod、服务、端口、协议、判定结果或流量方向(入口/出口)应用细粒度筛选器。 这种灵活性可确保针对特定用例定制的精确数据收集,仅记录相关的流量,并优化存储使用情况,以提高性能、合规性和高效的故障排除。
日志存储选项:容器网络日志有两个主要存储选项:托管存储和非托管存储。
非托管存储:当 CR 应用于启用的日志收集时,网络流日志将本地存储在固定装载位置 /var/log/acns/hubble 的主机节点上。 但是,此存储位置是临时的,因为节点本身不是永久性存储解决方案。 此外,一旦日志文件的大小达到 50 MB,它们就会自动轮换,这意味着较旧的日志会被覆盖。 此存储解决方案适用于实时监视,但不支持长期存储或保留。 对于寻求其他日志管理功能的用户,可以集成非Microsoft日志记录服务,例如 OpenTelemetry 收集器。 这样可以灵活地管理 Azure 生态系统外部的日志,并且对于已使用特定日志管理平台的客户非常有用。
托管存储:对于长期保留和高级分析,建议在 AKS 群集中配置 Azure 监视,以便在 Azure Log Analytics 工作区中收集和存储日志。 此设置不仅可确保安全且合规的日志存储,而且还支持强大的功能,例如异常情况检测、性能优化和历史数据分析。 使用历史日志,用户可以识别趋势、基线行为,并主动解决定期问题。 例如,使用 Azure 托管 Prometheus,用户可以针对指标和日志配置警报,从而实时监视和快速检测离群值。
用于日志存储的工作区与载入期间配置的工作区相同。 在此功能支持的存储计划的情况下,支持 Analytics 和 Basic 表计划。 有关表格计划的详细信息,请参阅Azure Monitor 日志文档
Azure 日志分析和 Grafana 仪表板中的简单可视化效果:通过在 grafana 中呈现日志和数据,仪表板可以简化复杂信息,加快数据理解速度,实现更快速的决策。
Azure 门户中容器网络日志的可视化
用户可以在其群集的 Azure Log Analytics 工作区中可视化、查询和分析 Azure 门户中的流日志:
Grafana 仪表板中容器网络日志的可视化
Azure 托管 Grafana 实例中的访问 - 为了简化日志分析,我们提供了预配置的两个 Azure 托管 Grafana 仪表板。 你可以将其查找为
- Azure / Insights / Containers / Networking / Flow Logs - 此仪表板提供 Kubernetes 工作负载相互通信的可视化效果,包括网络请求、响应、删除和错误。 目前,用户必须导入具有用户 ID 的 grafana 仪表板,才能在 Azure 门户中提取流日志仪表板。 我们知道这是一个临时解决方案,很快所有相关仪表板将自动在此处提供。
- Azure / Insights / Containers / Networking / Flow Logs (外部流量) - 此仪表板提供 Kubernetes 工作负载从 Kubernetes 群集外部发送/接收通信的可视化效果,包括网络请求、响应、删除和错误。
若要配置 Grafana,请参阅使用高级容器网络服务设置 Azure 托管 Grafana,请参阅设置 Grafana。
- Azure / Insights / Containers / Networking / Flow Logs - 此仪表板提供 Kubernetes 工作负载相互通信的可视化效果,包括网络请求、响应、删除和错误。 目前,用户必须导入具有用户 ID 的 grafana 仪表板,才能在 Azure 门户中提取流日志仪表板。 我们知道这是一个临时解决方案,很快所有相关仪表板将自动在此处提供。
用户可以在这些仪表板中看到以下主要组件:
仪表板全面概述了网络运行状况,其中包含关键指标,例如总流日志、唯一请求、已删除的请求和转发的请求,从而实现快速异常检测和高效的故障排除。 它按协议和行为对统计信息进行分类,包括 DNS 删除的请求、HTTP 2xx 响应、第 4 层请求/响应速率和已删除的请求计数。 服务依赖项图可视化应用程序或群集交互,突出显示流量流、瓶颈和依赖项,以优化性能。
流日志和错误日志用于快速分析。 可以筛选出这些日志,以便进行根本原因分析。 例如,对于 DNS 问题,可以根据域名服务器 (DNS) 协议筛选出错误日志。
用户只需展开日志并筛选出所选字段即可筛选掉这些日志。 分离流日志和错误日志部分有助于更快地分析问题。 此组织允许用户快速识别和解决错误,而无需筛选不相关的信息,从而提高故障排除和调试过程的效率。 此外,对每个日志条目使用清晰的标签和时间戳可以进一步增强在系统中查明特定事件或错误的能力。
此仪表板的第三部分允许用户查看排名靠前的命名空间、工作负载、DNS 错误等。网络流日志可视化对于监视和分析 Kubernetes 群集中的通信至关重要。 它提供命名空间、工作负载、端口/查询使用情况的见解,并帮助识别趋势、检测瓶颈和诊断问题。 用户可以发现重要的网络活动、删除请求和评估协议分发(例如 TCP 与 UDP)。 此概述通过检测异常流量模式支持群集运行状况、资源优化和安全性。
按需
高级容器网络服务支持对网络流日志进行按需捕获,从而提供实时可见性,而无需使用 Hubble CLI 和 Hubble UI 预先配置或持久存储。 用于获取按需日志的此模式为正式版 (GA)。
Hubble CLI
命令行接口提供了一种灵活的交互式方法来直接从终端查询、筛选和分析流日志。 用户可以执行实时命令来检查流量流、查看数据包元数据以及排查网络问题,而无需离开其作环境。
Hubble 用户界面
基于 Web 的界面提供直观的可视平台用于监视。 借助实时流量仪表板、流摘要和可搜索日志等功能,用户可以轻松跟踪服务到服务通信、检测异常并深入了解群集活动。
这些工具共同提供实时可见性和可作见解,从而实现更快的故障排除和改进的网络管理。
主要优势
- 更快地解决问题:通过对网络流量的详细且可作的见解,客户可以更快地识别和解决连接或性能问题,最大限度地减少停机时间和中断。
- 优化的运营效率:聚合且高效地存储的日志可降低数据管理开销,使团队能够专注于分析和决策,而不是管理大量原始数据。
- 增强应用程序可靠性:通过监视服务到服务通信和检测异常,客户可以主动解决潜在问题,确保更流畅、更可靠的应用程序体验。
- 改进了决策:在 Azure 托管 Grafana 中可视化网络模式并利用服务映射为客户提供了对应用程序网络行为的清晰见解,有助于更好地进行基础结构规划和优化。
- 成本节省:高效的日志聚合和可自定义的日志记录范围可降低存储和数据引入成本,为长期网络监视提供经济高效的解决方案。
- 简化的合规性和安全性:持久和全面的日志支持审核线索、法规合规性和可疑流量的快速识别,帮助客户维护安全合规的环境。
定价
重要
高级容器网络服务是一项付费服务。 有关定价的详细信息,请参阅高级容器网络服务 - 定价。
后续步骤
- 了解如何启用容器网络日志,请参阅 配置容器网络日志。
- 有关 Azure Kubernetes 服务的高级容器网络服务(AKS),请参阅 高级容器网络服务概述。
- 了解高级容器网络服务中的容器网络可观测性功能什么是容器网络可观测性
- 通过什么是容器网络安全?了解高级容器网络服务中的容器网络安全功能。