Docker | awslogs driver |设置含义流名称



我告诉 containerd 按照 https://docs.docker.com/config/containers/logging/awslogs/文档中的建议使用/etc/docker/daemon.json文件使用 awslogs

默认情况下,aws 流名称设置为随机生成的容器 ID,当您列出组中的流时,该 ID 毫无意义。

awslogs 驱动程序有一个选项将 awslogs-stream 设置为特定名称,但这不能满足我的需求,因为我希望不同的容器使用不同的流。

我想我想做的是告诉 docker 从映像名称和容器 ID 组成流 ID,但我找不到选项。

从理论上讲,我可以直接在docker run命令中设置流名称,但这还不够好,因为我使用 Kubernetes 启动这些容器,所以我不确定如何从应用程序 yml 文件中设置stream_name。

任何想法如何满足我的需求?

你是对的,没有迹象表明--log-opt被实施到 Kubernetes 中,因为 dockerd 已被弃用。

您没有指定awslogs-stream而是尝试设置tag

  • 检查这个将 Awslogs 与 Kubernetes "本机"一起使用,因为它可能完全适合您的需求。

从您发布的 Docker 文档链接:

指定tag作为awslogs-stream选项的替代方法。tag解释 Go 模板标记,例如{{.ID}}{{.FullID}}{{.Name}}docker.{{.ID}}。 有关所有受支持的模板替换的详细信息,请参阅标记选项文档。

另一种可行的方法是使用 sidecar 容器守护程序来处理日志,然后转发到 awslog,但tag是一个更干净、更简单的解决方案。

这是流利的过程:

如何将 Kubernetes 日志发送到 AWS Cloudwatch

最新更新