【问题标题】: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 Definitions、Create 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