【问题标题】:How to get the log from an application deployed using docker on AWS ecs如何从在 AWS ecs 上使用 docker 部署的应用程序获取日志
【发布时间】:2018-12-20 04:34:14
【问题描述】:

我有一个后端应用程序在 node.js 上运行,带有 feathers.js 框架。我使用 docker 部署了它,目前由 AWS ECS 维护。

在我的应用程序中,我有几行 'console.log' 用于显示一些字符串以用于调试目的。我想知道当我在 AWS ECS 上部署应用程序时,console.log 打印到哪里以及如何访问它?

【问题讨论】:

    标签: node.js amazon-web-services docker console.log amazon-ecs


    【解决方案1】:

    您必须在 ECS 上创建一个日志组:

    按照这些步骤创建您的日志组-

    第 1 步:打开 Amazon ECS 控制台https://console.aws.amazon.com/ecs/

    第 2 步:在左侧导航窗格中,选择Task DefinitionsCreate new Task Definition。

    第 3 步:选择您的 compatibility option,然后选择下一步。

    第 4 步:选择 Add container 开始创建您的容器定义。

    第 5 步:Storage and Logging section 中,为日志配置选择Auto-configure CloudWatch Logs

    第 6 步:输入您的 awslogs log driver options。详情请见Specifying a Log Configuration in your Task Definition

    第 7 步:完成任务定义向导的其余部分。

    创建日志视图后,您可以使用以下步骤查看它:

    第 1 步:https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

    第 2 步:在导航窗格中,选择日志

    第 3 步:对于日志组,选择日志组以查看流。

    第 7 步:对于日志流,选择 log stream name查看日志数据。

    更多详情:

    Working with Log Groups and Log Streams

    Using the awslogs Log Driver

    【讨论】:

      【解决方案2】:

      在您的容器定义中,您需要提及日志配置。由于不清楚您是否使用 cloudformation / 从 gui 控制台创建 ecs 集群,我将尝试两种方式回答。

      1. GUI 控制台:

      2。使用 cloudformation 模板:

          {
          "containerDefinitions": [
              {
                  "name": "nodejsApplication",
                  "links": [
                      "mysql"
                  ],
                  "image": "nodejsApplication",
                  "essential": true,
                  "portMappings": [
                      {
                          "containerPort": 80,
                          "hostPort": 80
                      }
                  ],
                  "logConfiguration": {
                      "logDriver": "awslogs",
                      "options": {
                          "awslogs-group": "awslogs-nodejsApplication",
                          "awslogs-region": "us-west-2",
                          "awslogs-stream-prefix": "awslogs-example"
                      }
                  },
                  "memory": 500,
                  "cpu": 10
              }
           ]
          }
      

      更多详情请关注Using Awslogs

      【讨论】:

        【解决方案3】:

        console.log 打印到 STDOUT。将其作为日志收集的一个好方法是发送至use the awslogs log driver。这会将这些日志路由到您选择的 CloudWatch Logs 流。这里有更多information on what CloudWatch Logs 以及如何使用它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-09-09
          • 2021-05-12
          • 2021-06-03
          • 2021-01-24
          • 2020-07-22
          • 2022-10-28
          • 1970-01-01
          • 2017-09-30
          相关资源
          最近更新 更多