我有一个运行在EC2实例上的容器,我想把我的日志填充到同一区域的CloudWatch。
我正试图使用这个教程。 https://docs.docker.com/config/containers/logging/awslogs/
然而,我遇到了一个与连接超时有关的问题,即使政策允许我的ec2实例连接到云观察,当我试图描述任何东西时,我没有收到任何响应。
你知道如何将我的日志从运行在EC2上的docker容器中获取到cloudwatch?我已经尝试了多个教程,但是没有办法做到这一点。
要创建ECS-CloudWatchLogs IAM策略
1.打开IAM控制台, https://console.aws.amazon.com/iam/。
2.在导航窗格中,选择政策。
3.选择创建策略,JSON。
4.输入以下政策。
6.在审查策略页面,输入ECS-CloudWatchLogs作为名称,并选择创建策略。
要将ECS-CloudWatchLogs策略附加到ecsInstanceRole上
2.在导航窗格中,选择角色。
3.选择ecsInstanceRole。如果该角色不存在,请按照Amazon ECS Container Instance IAM Role中的程序来创建该角色。
4.选择权限,附加政策。
5.要缩小要附加的可用策略,对于Filter,输入ECS-CloudWatchLogs。
6.选择ECS-CloudWatchLogs策略,并选择附加策略。
如果实例有正确的权限,你需要在你的docker运行命令中传递以下选项。
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
要创建ECS-CloudWatchLogs IAM策略
1.打开IAM控制台, https://console.aws.amazon.com/iam/。
2.在导航窗格中,选择政策。
3.选择创建策略,JSON。
4.输入以下政策。
"版本"。"2012-10-17", "声明":[ "效果":"允许", "行动":[ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" "资源"。[ "arn:aws:logs : :*" 5.选择审查政策。6.在审查策略页面,输入ECS-CloudWatchLogs作为名称,并选择创建策略。
要将ECS-CloudWatchLogs策略附加到ecsInstanceRole上
1.打开IAM控制台, https://console.aws.amazon.com/iam/。
2.在导航窗格中,选择角色。
3.选择ecsInstanceRole。如果该角色不存在,请按照Amazon ECS Container Instance IAM Role中的程序来创建该角色。
4.选择权限,附加政策。
5.要缩小要附加的可用策略,对于Filter,输入ECS-CloudWatchLogs。
6.选择ECS-CloudWatchLogs策略,并选择附加策略。