【问题标题】:Docker | awslogs driver | Setting meaning stream name码头工人 | awslogs 驱动程序 |设置含义流名称
【发布时间】:2020-01-20 22:50:47
【问题描述】:

我告诉 containerd 使用 /etc/docker/daemon.json 文件中的 awslogs,正如 https://docs.docker.com/config/containers/logging/awslogs/ 中的文档中所建议的那样

默认情况下,aws 流名称设置为随机生成的 container-id,当您列出组内的流时,这将毫无意义。

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

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

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

有什么想法可以满足我的需求吗?

【问题讨论】:

标签: docker kubernetes containers amazon-cloudwatchlogs


【解决方案1】:

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

您是否尝试过设置tag,而不是指定awslogs-stream

来自您发布的 Docker 文档链接:

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

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

这是使用fluentd的过程:

How to Send Kubernetes Logs to AWS Cloudwatch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 2020-07-04
    • 2020-10-10
    • 1970-01-01
    • 2018-03-15
    • 2011-09-15
    • 2021-07-08
    • 2021-01-06
    相关资源
    最近更新 更多