amazon-web-services - ECS Fargate:Logstash 容器共享卷
问题描述
我在 Fargate 中运行一个任务,它有一个 php-fpm 容器和 nginx 容器。我添加了第三个运行 Logstash 并在我的 conf 中监听 php/nginx 日志。
当我在本地运行它时,我可以在 Kibana 中看到我的日志,但在 Fargate 中看不到。我所做的是在logstash容器上添加“volumes_from”参数并添加了php和nginx。还不够吗?
我还检查了这些文件中的权限,应该没问题。
在我的任务定义下方:
"executionRoleArn": "",
"containerDefinitions": [
{
"dnsSearchDomains": null,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "ecs"
}
},
"entryPoint": null,
"portMappings": [
{
"protocol": "tcp",
"containerPort": 80
}
],
"command": null,
"linuxParameters": null,
"cpu": 0,
"environment": [],
"ulimits": null,
"dnsServers": null,
"mountPoints": [],
"workingDirectory": "",
"dockerSecurityOptions": null,
"memory": null,
"memoryReservation": null,
"volumesFrom":[],
"image": "nginx image",
"disableNetworking": null,
"interactive": null,
"healthCheck": null,
"essential": false,
"links": [],
"hostname": null,
"extraHosts": null,
"pseudoTerminal": null,
"user": null,
"readonlyRootFilesystem": null,
"dockerLabels": null,
"systemControls": null,
"privileged": null,
"name": "nginx"
},
{
"dnsSearchDomains": null,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "ecs"
}
},
"entryPoint": null,
"portMappings": [
{
"protocol": "tcp",
"containerPort": 9000
}
],
"command": null,
"linuxParameters": null,
"cpu": 0,
"environment": [],
"ulimits": null,
"dnsServers": null,
"mountPoints": [],
"workingDirectory": "",
"dockerSecurityOptions": null,
"memory": null,
"memoryReservation": null,
"volumesFrom": [],
"image": "image php",
"disableNetworking": null,
"interactive": null,
"healthCheck": null,
"essential": true,
"links": null,
"hostname": null,
"extraHosts": null,
"pseudoTerminal": null,
"user": null,
"readonlyRootFilesystem": null,
"dockerLabels": null,
"systemControls": null,
"privileged": null,
"name": "php"
},
{
"dnsSearchDomains": null,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/",
"awslogs-region": "eu-west-1",
"awslogs-stream-prefix": "ecs"
}
},
"entryPoint": null,
"portMappings": [
{
"protocol": "tcp",
"containerPort": 5400
},
{
"protocol": "tcp",
"containerPort": 9600
}
],
"command": null,
"linuxParameters": null,
"cpu": 0,
"environment": [],
"ulimits": null,
"dnsServers": null,
"mountPoints": [],
"workingDirectory": null,
"dockerSecurityOptions": null,
"memory": null,
"memoryReservation": null,
"volumesFrom": [
{
"sourceContainer": "php",
"readOnly": null
},
{
"sourceContainer": "nginx",
"readOnly": null
}
],
"image": "logstash image",
"disableNetworking": null,
"interactive": null,
"healthCheck": null,
"essential": false,
"links": null,
"hostname": null,
"extraHosts": null,
"pseudoTerminal": null,
"user": null,
"readonlyRootFilesystem": null,
"dockerLabels": null,
"systemControls": null,
"privileged": null,
"name": "elk"
}
],
"placementConstraints": [],
"memory": "4096",
"taskRoleArn": "arn",
"compatibilities": [
"EC2",
"FARGATE"
],
"taskDefinitionArn": "arn",
"family": "task-def-fargate",
"requiresAttributes": [
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.17"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "ecs.capability.execution-role-ecr-pull"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "ecs.capability.task-eni"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.ecr-auth"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.task-iam-role"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "ecs.capability.execution-role-awslogs"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
}
],
"requiresCompatibilities": [
"FARGATE"
],
"networkMode": "awsvpc",
"cpu": "2048",
"revision": 51,
"status": "ACTIVE",
"volumes": []
}
解决方案
终于解决了。
我忘记在我的 php 和 nginx Dockerfiles 中公开日志目录。
推荐阅读
- aes - 在 C# 中使用 micro-ecc 生成的原始 secp256k1 公钥在服务器上生成共享密钥
- android - 不更新 recyclerview 中的第一项
- oracle - 即使尚未将其插入表中,如何触发“查看”某些默认值?
- reactjs - 带有 Typescript 的 ReactJS 中的 MomentInput 类型是什么?
- php - 将 2 个数组合并为一个映射数组
- service - 过多的 TaskCanceledExceptions
- datetime - PYSPARK 中的数据时间
- rest - 如何在springboot中发送带有休息请求的完整yaml文件?
- angular - 运行业力测试时出现错误无法读取 null 的属性“附加”
- ios - 如何将函数传递给 Swift 中的另一个类