ECS Fargate NGINX 容器未在 CloudWatch 日志中显示错误
ECS Fargate NGINX container not showing errors in CloudWatch logs
我的 nginx Dockerfile:
FROM nginx:1.15.12-alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY ./nginx/nginx.conf /etc/nginx/conf.d
# Forward request logs to Docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 80
ENTRYPOINT ["nginx", "-g", "daemon off;"]
我的 ECS 任务定义中的容器:
[
{
"name": "nginx",
"image": "<ECR REPO HERE>",
"networkMode": "awsvpc",
"essential": true,
"portMappings": [
{
"containerPort": 80,
"protocol": "http"
}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "mygroup",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "nginx"
}
},
"essential": true
}
]
然而当部署任务时,它失败了,在 CloudWatch 中我看到以下内容:
我是 ECS / Cloudwatch 的新手。如何查看容器失败的 NGINX 错误?
- 你应该检查
ECS_Execution_Role_Policy
。它应该包含 logs
权限。喜欢:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}
- 您应该为
awslogs
驱动程序配置 ecs_agent
的配置。
此配置文件路径在主机中 /etc/ecs/ecs.config
。这个文件应该是这样的:
ECS_CLUSTER=test_ecs_cluster
ECS_AVAILABLE_LOGGING_DRIVERS=["awslogs","json-file"]
See :
Here's a document
我的 nginx Dockerfile:
FROM nginx:1.15.12-alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY ./nginx/nginx.conf /etc/nginx/conf.d
# Forward request logs to Docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 80
ENTRYPOINT ["nginx", "-g", "daemon off;"]
我的 ECS 任务定义中的容器:
[
{
"name": "nginx",
"image": "<ECR REPO HERE>",
"networkMode": "awsvpc",
"essential": true,
"portMappings": [
{
"containerPort": 80,
"protocol": "http"
}
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "mygroup",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "nginx"
}
},
"essential": true
}
]
然而当部署任务时,它失败了,在 CloudWatch 中我看到以下内容:
我是 ECS / Cloudwatch 的新手。如何查看容器失败的 NGINX 错误?
- 你应该检查
ECS_Execution_Role_Policy
。它应该包含logs
权限。喜欢:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}
- 您应该为
awslogs
驱动程序配置ecs_agent
的配置。
此配置文件路径在主机中 /etc/ecs/ecs.config
。这个文件应该是这样的:
ECS_CLUSTER=test_ecs_cluster
ECS_AVAILABLE_LOGGING_DRIVERS=["awslogs","json-file"]
See :
Here's a document