如何對 Elastic Beanstalk 環境的 CloudWatch 串流相關錯誤進行疑難排解?
上次更新日期:2023 年 1 月 19 日
我想要解決與 AWS Elastic Beanstalk 環境的 Amazon CloudWatch 串流相關的錯誤。
簡短描述
將您的日誌串流至 CloudWatch 有助於保護您的資料。例如,如果您的 Elastic Beanstalk 環境遇到終止的 Elastic Compute Cloud (Amazon EC2) 執行個體,則您仍然可以從 CloudWatch 復原日誌。您還可以使用日誌輪替來防止資料遺失。
如果即使在啟用日誌串流之後,環境的執行個體日誌仍未串流至 CloudWatch,則您必須觀察下列常見問題:
- 您的 IAM 執行個體設定檔角色缺少必要的 IAM 許可。
- 您在不支援 CloudWatch 日誌的 AWS 區域啟動了您的環境。
- 您指定的路徑中不存在其中一個自訂日誌。
解決方案
1. 確認您的 Elastic Beanstalk 執行個體設定檔角色具有下列許可:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams"
],
"Resource": [
"*"
]
}
]
}
2. 如果您要串流自訂日誌,則使用設定檔案直接安裝 CloudWatch Logs 代理程式並設定檔案。此外,您必須驗證該組態檔案的格式和縮進。如需將自訂日誌串流至 CloudWatch 的詳細資訊,請參閱範例組態檔案。
3. 檢查 CloudWatch 代理程式狀態和代理程式日誌,以找出日誌串流問題的原因。
檢查舊的 CloudWatch 代理程式 (awslogsd) 狀態和日誌:
- 代理程式狀態:systemctl status awslogsd.service
- 代理程式日誌位置:/var/log/awslogs.log
檢查最新的 CloudWatch 代理程式 (amazon-cloudwatch-agent) 狀態和日誌:
- 代理程式狀態︰systemctl status amazon-cloudwatch-agent.service
- 代理程式日誌位置:/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
如需有關在 Elastic Beanstalk 中自訂日誌檔案的詳細資訊,請參閱如何在 Elastic Beanstalk 中自訂日誌檔案?