CloudWatch上的EC2 Docker容器日志

fgw7neuy  于 2022-10-04  发布在  Docker
关注(0)|答案(2)|浏览(183)

我在EC2示例上有一个正在运行的容器,我想将我的日志填充到同一区域的CloudWatch中。

我试着使用这个教程:https://docs.docker.com/config/containers/logging/awslogs/

然而,我有一个与连接超时相关的问题,即使策略允许我的EC2示例连接到CloudWatch,但当我尝试描述任何东西时,我没有收到任何响应。

你知道如何将我的日志从运行在EC2上的码头容器转移到CloudWatch上吗?我已经尝试了多个教程,但还是做不到。

h6my8fg2

h6my8fg21#

创建ECS-CloudWatchLogs IAM策略

1.打开https://console.aws.amazon.com/iam/的IAM控制台。
1.在导航窗格中,选择策略。
1.选择创建策略、JSON。
1.填写以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:*:*:*"
            ]
        }
    ]
}

1.选择复查策略。
1.在查看策略页面中,输入ecs-CloudWatchLogs作为名称,然后选择创建策略。

将ECS-CloudWatchLogs策略附加到ecsInstanceRole

1.打开https://console.aws.amazon.com/iam/的IAM控制台。
1.在定位窗格中,选择职责。
1.选择ecsInstanceRole。如果角色不存在,请按照Amazon ECS Container示例IAM角色中的步骤创建角色。
1.选择权限,附加策略。
1.要缩小要附加的可用策略,请在筛选器中键入ecs-CloudWatchLogs。
1.选择ECS-CloudWatchLogs策略,然后选择附加策略

9gm1akwq

9gm1akwq2#

如果示例拥有正确的权限,则只需将以下选项传递给您的docker run命令。

docker run -it --log-driver=awslogs --log-opt awslogs-region=us-west-2     --log-opt awslogs-group=myLogGroup --log-opt awslogs-create-group=true  node:alpine

您可以签入AWS-Console,您将看到日志组名称myLogGroup

正如您还提到的,您将获得超时,要验证这一点,请检查以下命令。

curl http://checkip.amazonaws.com

如果没有响应,则表示该示例不能访问互联网,且不在私有子网中。

相关问题