AKS 日志格式已更改

ssc*_*ger 3 splunk azure kubernetes azure-aks

我们最近将 AKS 集群从 1.17.x 更新到 1.19.x,并发现自定义应用程序日志的格式发生了/var/lib/docker/containers变化。

更新之前是这样的: 旧的有效 json 格式

之后看起来像这样: 新的无效 json 格式

我可以在变更日志中找到一些注释,其中 kubernetes 从文本日志更改为结构化日志(对于系统组件),但我不知道这与我们的日志格式更改有何关联。

https://kubernetes.io/blog/2020/09/04/kubernetes-1-19-introducing-structured-logs/#:~:text=In%20Kubernetes%201.19%2C%20we%20are,迁移%20to% 20%20结构化%20格式

https://kubernetes.io/docs/concepts/cluster-administration/system-logs/

/var/lib/docker/containers在 AKS > 1.19.x 中是否仍有机会获取有效的 json 日志?

背景:我们将应用程序日志发送到 Splunk,并且不使用 Azure 堆栈进行日志分析。目前,我们的 Splunk 设置无法解析新的日志格式。

out*_*man 5

日志的格式由容器运行时定义。似乎在您从 docker 容器运行时解析日志之前,现在它是 containerd (https://azure.microsoft.com/en-us/updates/azure-kubernetes-service-aks-support-for-containerd-runtime-正在预览中/)。

根据这篇文章 - 您仍然可以选择 moby (即 docker)作为容器运行时。

为了让您也能承担这一责任,您应该考虑使用其中之一(考虑到它们会自动为您检测日志格式和容器运行时)。