容器见解中的高缩放日志收集(预览版)

高缩放模式是容器见解中的一项功能,可用于从 Azure Kubernetes 服务 (AKS) 群集节点收集具有高吞吐量的容器控制台(stdout 和 stderr)日志。 使用此功能,每个节点的收集速率最高可达 50,000 条日志/秒。

注意

此功能目前处于公开预览状态。 有关其他信息,请阅读 Microsoft Azure 预览版补充使用条款

概述

启用高缩放模式后,容器见解会执行多个配置更改,从而增加整体吞吐量。 这包括使用升级后的代理和 Azure Monitor 数据管道以及缩放改进。 这些更改全部由 Azure Monitor 在后台完成,启用该功能后无需进行输入或配置。

高缩放模式仅影响数据收集层。 容器见解体验的其余部分保持不变,日志会引入到同一 ContainerLogV2 表中。 现有查询和警报将继续工作,因为收集的数据相同。

若要达到支持的最大日志吞吐量,应针对 AKS 群集节点使用 CPU 核心数不少于 16 个的高端 VM SKU。 使用低端 VM SKU 会影响日志吞吐量。

我的群集是否符合条件?

高缩放日志收集适用于其 Kubernetes 群集中每个节点的发送速率超过 2,000 条日志/秒(或 2 MB/秒)的环境,并经过设计和测试,每个节点的发送速率最高可达 50,000 条日志/秒。 使用以下日志查询来确定群集是否适合高缩放日志收集。

每个节点的每秒日志数

ContainerLogV2 
| where _ResourceId = "<cluster-resource-id>" 
| summarize count() by bin(TimeGenerated, 1s), Computer 
| render timechart 

每个节点的每秒日志大小(以 MB 为单位)

 ContainerLogV2 
| where _ResourceId = "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer 
| render timechart 

先决条件

  • Azure CLI 2.63.0 或更高版本。
  • 如果安装了 aks-preview CLI 扩展,AKS-preview CLI 扩展版本必须为 7.0.0b4 或更高。
  • 群集架构必须配置用于 ContainerLogV2
  • 如果 ama-logs 守护程序集容器上的默认资源限制(CPU 和内存)不满足日志缩放要求,请联系 Microsoft 支持渠道,以增加 ama-logs 容器的资源限制。

网络防火墙要求

除了用于监视 Kubernetes 群集的网络防火墙要求外,还需要下表中的额外配置来根据云启用高缩放模式。

终结点 端口
由世纪互联运营的 Microsoft Azure 云 <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn 443

终结点是群集使用的数据收集规则 (DCR) 的数据收集终结点 (DCE) 中的日志引入终结点。 此 DCE 是在为群集启用高缩放模式时创建的,将以前缀 MSCI-ingest 开头。

DCE 的日志引入终结点的屏幕截图。

限制

此预览版不支持以下方案。 该功能正式发布后,这些问题会得到解决。

  • 具有 Arm64 节点的 AKS 群集
  • 已启用 Azure Arc 的 Kubernetes
  • 具有受信任证书的 HTTP 代理
  • 通过 Azure 门户、Azure Policy、Terraform 和 Bicep 加入
  • 在 AKS Insights 门户体验中通过“监视设置”进行配置
  • 从现有容器见解自动迁移

启用高缩放日志收集

按照以下部分中的两个步骤为群集启用高缩放模式。

注意

高日志缩放模式需要用于引入的数据收集终结点 (DCE)。 加入时,会为每一个群集都创建一个前缀为 MSCI-ingest 的引入 DCE。 如果配置了 Azure Monitor 专用链接范围,则还会使用前缀 MSCI-config 创建配置 DCE。

更新 configmap

第一步是更新群集的 configmap,以指示容器见解 ama-logs deamonset Pod 以高缩放模式运行。

按照配置和部署 ConfigMap 中的指南下载和更新群集的 ConfigMap。 你需要针对高缩放日志进行的唯一更改是在 agent-settings 下启用 agent_settings.high_log_scale,如下所示:

[agent_settings.high_log_scale] 
  enabled = true 

应用此 configmap 后,ama-logs-* pod 将会自动重启,并将 ama-logs daemonset pod 配置为在高缩放模式下运行。

为监视加载项启用高缩放模式

使用以下 Azure CLI 命令启用采用高缩放模式的监视加载项,以便根据 AKS 配置为监视加载项启用高缩放日志模式。

注意

可以使用 ARM 模板为监视加载项启用高缩放模式,而不是 CLI。 有关使用 ARM 模板启用容器见解的指南,请参阅启用容器见解。 若要启用高缩放模式,请使用 Microsoft-ContainerLogV2-HighScale 而不是 streams 参数中的 Microsoft-ContainerLogV2,如使用 ARM 模板配置 DCR 中所述。

现有 AKS 群集

az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-log-scale-mode  

现有 AKS 专用群集

az aks enable-addons -a monitoring -g  <resource-group-name> -n <cluster-name> --enable-high-scale-mode --ampls-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/privatelinkscopes/<resourceName> 

新 AKS 群集

az aks create -g <cluster-name> -n <cluster-name> enable-addons -a monitoring --enable-high-log-scale-mode  

新 AKS 专用群集

有关创建 AKS 专用群集的详细信息,请参阅创建专用 Azure Kubernetes 服务 (AKS) 群集。 使用额外参数 --enable-high-scale-mode--ampls-resource-id 为高日志缩放模式配置 Azure Monitor 专用链接范围资源 ID。

迁移

如果已为群集启用容器见解,则需要将其禁用,然后使用高缩放模式重新启用它。

  • 由于高缩放模式使用不同的数据管道,因此必须确保防火墙或其他网络连接不会阻止管道终结点。
  • 除了用于数据收集的标准 DCR 之外,高缩放模式还需要用于引入的数据收集终结点 (DCE)。 如果已创建使用 Microsoft.ContainerLogV2 的任何 DCR,则必须将此 DCR 替换为 Microsoft.ContainerLogV2-HighScale,否则数据将会重复。 此外,还应创建用于引入的 DCE 并将其链接到 DCR(如果 DCR 尚未使用一个)。 有关依赖项的参考,请参考“通过 Azure 资源管理器加入容器见解”。

后续步骤