AKS接入Log Analytics时ContainerInsights与LogManagement指标重复问题
AKS Container Insights日志分类重合问题排查方案
核心结论
你观察到的LogManagement与ContainerInsights摄入量统计重合,绝大多数情况不会产生双倍计费,本质是Azure Monitor日志统计维度的规则导致:
- Azure对日志摄入量的统计是按解决方案维度打标签做拆分展示,同一份入库日志如果同时符合两个解决方案的标签规则,会在两个分类下同时展示统计值,不会因为标签重复就存储两份数据、重复计费。计费的唯一依据是实际写入工作区的原始数据量,和解决方案标签无关。
- 两类分类下真正属于重复采集的内容占比通常低于5%,主要是旧版本代理的标签bug、kube审计日志重复采集两类场景导致。
排查与修复步骤
- 校验是否存在真实重复写入
在Log Analytics工作区执行以下KQL查询,统计近7天各表的实际入库量,若同一张表不存在同一时间戳、同一日志ID的双份条目,就不存在真实重复采集:
如果查询结果为空,说明没有任何重复写入的数据,不需要调整配置,统计页的重合只是标签展示问题,不会产生额外费用。union * | where TimeGenerated > ago(7d) | summarize count() by _ItemId, Table, Solution | where count_ > 1 - 修复代理版本bug
3.1.4版本之前的ama-logs代理存在标签打错的问题,会将Container Insights采集的工作负载日志错误打上LogManagement标签,造成统计重合。执行以下命令查看当前代理版本:
如果镜像tag低于3.1.4,直接重启ama-logs daemonset即可自动拉取最新版代理,标签错误会在代理重启后1小时内自动修正:kubectl get daemonset ama-logs -n kube-system -o jsonpath='{.spec.template.spec.containers[0].image}'kubectl rollout restart daemonset/ama-logs -n kube-system - 调整ConfigMap关闭冗余采集
拉取当前集群的Container Insights配置ConfigMap:
检查以下配置项,关闭非必要的重复采集:kubectl get configmap container-azm-ms-agentconfig -n kube-system -o yaml > azm-config.yaml- 在
log_collection_settings配置段下,如果你没有审计需求,将kube_audit、kube_audit_admin、kube_audit_controller三个开关的enabled值设为false,这三类日志默认会同时被LogManagement和ContainerInsights两个分类打标,是占比最高的重合项 - 检查
syslog采集配置段,确认没有将/var/log/containers/、/var/log/pods/两个容器日志路径加入syslog采集目录,若存在则删除对应路径配置,避免容器日志同时被syslog通道和Container Insights专属通道采集
调整完成后应用配置:
kubectl apply -f azm-config.yaml - 在
- 验证配置生效
配置应用15分钟后,重新执行第一步的重复数据校验查询,同时观察24小时后的摄入量统计,重合占比会降到1%以下(剩余重合部分为平台强制留存的代理自身运行日志,无法关闭,且单集群日摄入量通常不超过100MB,不会产生明显费用)。
内容的提问来源于stack exchange,提问作者Łukasz Szcześniak
相关产品推荐
相关产品推荐

