簡體   English   中英

CloudWatch 上的 EC2 Docker 容器日志

[英]EC2 Docker container logs on CloudWatch

我在 EC2 實例上有一個正在運行的容器,我想將我的日志填充到同一區域的 CloudWatch。

我正在嘗試使用本教程: https://docs.docker.com/config/containers/logging/awslogs/

但是,我有一個與連接超時相關的問題,即使策略允許我的 ec2 實例連接到 cloudwatch,當我試圖描述任何我沒有收到任何響應的內容時。

你知道如何將我的日志從運行在 EC2 上的 docker 容器獲取到 cloudwatch 嗎? 我嘗試了多個教程,但無法做到。

創建 ECS-CloudWatchLogs IAM 策略

1.在https://console.aws.amazon.com/iam/打開 IAM 控制台。

2.在導航窗格中,選擇策略。

3.選擇創建策略,JSON。

4.輸入以下策略:

{“版本”:“2012-10-17”,“聲明”:[{“效果”:“允許”,“操作”:[“日志:CreateLogGroup”,“日志:CreateLogStream”,“日志:PutLogEvents”, "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs: : :*" ] } ] } 5.選擇審核政策。

6.在 Review policy 頁面上,輸入 ECS-CloudWatchLogs 作為 Name 並選擇 Create policy。

將 ECS-CloudWatchLogs 策略附加到 ecsInstanceRole

1.在https://console.aws.amazon.com/iam/打開 IAM 控制台。

2.在導航窗格中,選擇角色。

3.選擇ecsInstanceRole。 如果該角色不存在,請按照 Amazon ECS 容器實例 IAM 角色中的步驟創建該角色。

4.選擇權限,附加策略。

5.要縮小要附加的可用策略,對於過濾器,鍵入 ECS-CloudWatchLogs。

6.Select 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

您可以查看aws-console ,您將看到日志組名稱myLogGroup

正如您還提到您正在超時,要驗證這一點,請檢查以下命令。

 curl http://checkip.amazonaws.com

如果它沒有響應,則意味着該實例沒有 Internet 訪問權限並且它位於私有子網中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM