9

我在 AWS EC2 实例上使用 docker-compose 运行了一些 docker 容器。我希望将日志发送到 AWS CloudWatch。我在从运行 Sierra 的 Mac 将日志从 docker 容器获取到 AWS CloudWatch 时也遇到了问题,因此我已经转移到运行 Amazon AMI 的 EC2 实例。

我的码头工人撰写文件:

version: '2'
services:
  scraper:
  build: ./Scraper/
  logging:
    driver: "awslogs"
    options:
       awslogs-region: "eu-west-1"
       awslogs-group: "permission-logs"
       awslogs-stream: "stream"
  volumes:
    - ./Scraper/spiders:/spiders

当我运行 docker-compose up 时,出现以下错误:

刮刀_1 | 警告:“awslogs”日志驱动程序没有可用的日志

但容器正在运行。AWS CloudWatch 流上不显示任何日志。我已将 IAM 角色分配给运行 docker-containers 的 EC2 容器。

我现在完全不知道我应该做什么,并且会欣赏任何建议。

4

4 回答 4

8

awslogs不使用 ECS的作品。

您需要配置 AWS 凭证(用户应具有适当的 IAM 角色 [cloudwatch 日志])。

我使用了本教程,它对我有用:https ://wdullaer.com/blog/2016/02/28/pass-credentials-to-the-awslogs-docker-logging-driver-on-ubuntu/

于 2017-05-09T11:30:50.843 回答
0

我遇到了同样的错误,但是当我检查 cloudwatch 日志时,我能够看到 cloudwatch 中的日志。您是否检查过是否在 cloudwatch 中创建了日志组。当我们使用自定义日志记录驱动程序时,Docker 不支持控制台日志记录。

这里的限制部分说 docker logs 命令仅适用于 json-file 和 journald 驱动程序,内置驱动程序也是如此。

当试图从不支持读取的驱动程序中获取日志时,我什么都没有挂起,docker logs 打印这个:

Error response from daemon: configured logging driver does not support reading
于 2018-11-07T00:48:42.423 回答
-2

它涉及三个主要步骤。

  1. 创建 IAM 角色/用户
  2. 安装 CloudAgent
  3. 修改 docker-compose 文件或 docker run 命令

我在这里参考了一篇文章,其中包含将 docker 日志发送到 aws cloudwatch 的步骤。

于 2019-03-24T20:58:25.487 回答
-5

您使用的 AWS 日志驱动程序awslogs用于 EC2 容器服务 (ECS)。它不适用于普通的 EC2。请参阅文档

我建议创建一个单节点ECS 集群。确保该集群中的 EC2 实例具有角色,并且该角色提供写入 Cloudwatch 日志的权限。

从那里,您的容器中记录的任何内容都stdout将被awslogs驱动程序捕获并流式传输到 Cloudwatch 日志。

于 2017-03-22T16:05:54.400 回答