0

我正在尝试将 AWS ECS 容器任务日志移动到云手表,我已经为“Logdriver”配置了 IAM 策略和 Terraform 任务,我没有将任何容器集中日志放入 Cloudwatch>>

配置.JSON>>>

"logConfiguration": {
    "logDriver": "awslogs",
    "options": {
      "awslogs-group": "app-api",
      "awslogs-region": "eu-west-1",
      "awslogs-stream-prefix": "app-logs"
    }
  } 

ecs.tf>>

"elasticloadbalancing:DeregisterTargets",
    "elasticloadbalancing:Describe*",           "elasticloadbalancing:Describe*",
    "elasticloadbalancing:RegisterInstancesWithLoadBalancer",           "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
    "elasticloadbalancing:RegisterTargets"          "elasticloadbalancing:RegisterTargets",
    "logs:CreateLogGroup",
    "logs:CreateLogStream",
    "logs:DescribeLogStreams",
    "logs:PutSubscriptionFilter",
    "logs:PutLogEvents"
4

1 回答 1

-1

任务容器记录的信息类型主要取决于它们的 ENTRYPOINT 命令。默认情况下,如果您在本地运行容器,捕获的日志会显示您通常会在交互式终端中看到的命令输出,即 STDOUT 和 STDERR I/O 流。

你想得到什么样的日志?从上面的定义来看,只有在 ecs 上使用默认的 aws 日志才能从 STDOUT 和 STDER 获取

如果您想从文件中获取日志,您应该获取自己的 awslogs 配置。

  • 将容器日志文件挂载到容器实例(容器定义上的配置)
  • 如果您不使用 ECS 优化的 AMI,请安装 aws 日志代理 https://docs.aws.amazon.com/en_us/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html
  • 如果您使用 ECS-Optimized AMI,请下载使用curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
  • 使用您的自定义配置运行代理设置

    python awslogs-agent-setup.py -n -r ${AWS::Region} -c your_awslogs_configuration.conf || error_exit "Failed to run CloudWatch Logs agent setup"

于 2018-10-24T09:39:25.373 回答