我的 Amazon Elastic Container Service (Amazon ECS) 容器日誌未如預期顯示在 Amazon CloudWatch Logs 中。
將 logConfiguration 參數新增到任務定義中的 awslogs 日誌驅動程式。對於具有多個容器的 Amazon ECS 任務,請為每個容器設定logConfiguration 參數。
如果您有 Amazon Elastic Compute Cloud (Amazon EC2) 啟動類型,請將 Amazon ECS 容器執行個體更新至 1.9.0 版或更新版本。
如果您的容器執行個體未使用 Amazon ECS 最佳化的 Amazon Machine Image (AMI),請執行下列環境變數來啟動容器代理程式:
ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'
**注意:**在容器執行個體上指定 awslogs 日誌驅動程式。
如需詳細資訊,請參閱安裝 Amazon ECS 容器代理程式。
AWS Fargate 啟動類型
將 AmazonECSTaskExecutionRolePolicy 政策附加到您的 Amazon ECS 任務執行 AWS Identity and Access Management (IAM) 角色。該政策包含必要的 logs:CreateLogStream 和 logs:PutLogEvents 權限。或者,建立自訂 IAM 政策並新增必要的權限。
不具有任務執行 IAM 角色的 Amazon EC2 啟動類型任務
將 AmazonEC2ContainerServiceforEC2Role 政策附加到容器執行個體 IAM 角色。此政策包含必要的 logs:CreateLogStream 和 logs:PutLogEvents 權限。或者,建立自訂 IAM 政策並新增必要的權限。
具有任務執行 IAM 角色的 Amazon EC2 啟動類型任務
在 container agent configuration (容器代理程式組態),將 ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE 參數更新為 true。
**注意:**在 Amazon ECS 最佳化的 AMI (版本 1.16.0-1 或更新版本) 上,容器代理程式參數的預設值為 true,在 Windows 上則為 false。
如果您的任務在沒有網際網路閘道的 Amazon Virtual Private Cloud (Amazon VPC) 中使用 awslogs 日誌驅動程式,請為 CloudWatch Logs 建立介面 VPC 端點。選擇 com.amazonaws.Region.logs 作為服務。
awslogs 日誌驅動程式會將 STDOUT 和 STDERR I/O 串流從 Docker 傳遞到 CloudWatch Logs。
若要設定您的日誌,請更新您的應用程式,以將日誌傳送至 STDOUT 和 STDERR I/O 串流。然後在容器建置時,透過環境變數或組態檔案來設定應用程式的日誌層級。
Amazon ECS 的監控工具
如何對 Amazon ECS 或 Amazon EKS 容器日誌遺失的問題進行疑難排解?
將 Amazon ECS 日誌傳送到 CloudWatch
Lin
已提問 2 年前
DamonDeng
已提問 4 年前
david
已提問 10 個月前
zhen
已提問 3 年前
rePost-User-0790855
Donnie LI
已發佈 2 年前