將 Elastic Beanstalk 環境運作狀態資訊串流至 Amazon CloudWatch Logs - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 Elastic Beanstalk 環境運作狀態資訊串流至 Amazon CloudWatch Logs

如果您啟用增強型運作狀態報告,您可以將環境設定為將運作狀態資訊串流到 CloudWatch Logs。此串流與 Amazon EC2 執行個體日誌串流無關。此主題說明環境運作狀態資訊串流。如需執行個體日誌串流的詳細資訊,請參閱使用 Elastic Beanstalk 與 Amazon 日誌 CloudWatch

當您設定環境運作狀態串流時,Elastic Beanstalk 會針對環境運作狀態建立 CloudWatch Logs 日誌群組。日誌群組的名稱是 /aws/elasticbeanstalk/environment-name/environment-health.log。在這個日誌群組內,Elastic Beanstalk 會建立名為 YYYY-MM-DD#<hash-suffix> 的日誌串流 (每個日期可能有一個以上的日誌串流)。

當環境的運作狀態變更,Elastic Beanstalk 會將記錄新增到運作狀態日誌串流。該記錄代表運作狀態轉換 - 新的狀態和描述變更的原因。例如,環境的狀態會因負載平衡器失敗而變更為「嚴重」。如需增強型運作狀況的詳細說明,請參閱運作狀態顏色和狀態

環境運作狀態串流至 CloudWatch Logs 的必要條件

若要啟用 CloudWatch Logs 的環境運作狀態串流,您必須符合以下條件:

  • 平台 – 您必須使用可支援增強型運作狀態報告的平台版本。

  • 許可 – 您必須將特定記錄相關許可授與 Elastic Beanstalk,以便代表您為環境串流運作狀態資訊。如果您的環境未使用 Elastic Beanstalk 為它建立的服務角色 aws-elasticbeanstalk-service-role,或您的帳戶服務連結角色 AWSServiceRoleForElasticBeanstalk,請務必將以下許可新增至您的自訂服務角色。

    { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*:log-stream:*" }

將環境運作狀態日誌串流至 CloudWatch Logs

您可以使用 Elastic Beanstalk 主控台、EB CLI 或組態選項,啟用串流至 CloudWatch Logs 的環境運作狀態。

使用 Elastic Beanstalk 主控台的環境運作狀態日誌串流

將環境運作狀態日誌串流至 CloudWatch Logs
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 在導覽窗格中,選擇 Configuration (組態)。

  4. Monitoring (監控) 組態類別中,選擇 Edit (編輯)

  5. Health reporting (運作狀態報告) 下,確保報告 System (系統) 設為 Enhanced (增強型)

  6. Health event streaming to CloudWatch Logs (運作狀態事件串流到 CloudWatch Logs)

    • 啟用 Log streaming (日誌串流)

    • Retention (保留) 設為儲存日誌的天數。

    • 選取 Lifecycle (生命週期) 設定,其決定是否在環境終止後儲存日誌。

  7. 若要儲存變更,請選擇頁面底部的儲存變更

您在啟用日誌串流後,返回 Monitoring (監控) 組態類別或頁面,並且尋找 Log Group (日誌群組) 連結。按一下此連結,在 CloudWatch 主控台查看您的環境運作狀態日誌。

使用 EB CLI 的環境運作狀態日誌串流

若要使用 EB CLI 將環境運作狀態日誌串流到 CloudWatch Logs,請使用 eb logs 命令。

$ eb logs --cloudwatch-logs enable --cloudwatch-log-source environment-health

您也可以使用 eb logs 擷取 CloudWatch Logs 的日誌,例如,以下命令為您的環境中擷取所有的運作狀態日誌,並將它們儲存到 .elasticbeanstalk/logs 底下的目錄。

$ eb logs --all --cloudwatch-log-source environment-health

使用組態檔案的環境運作狀態日誌串流

當您建立或更新環境時,您可以使用組態檔案來設定與配置串流到 CloudWatch Logs 的環境運作狀態日誌。若要使用以下範例,可將文字複製到您的應用程式來源套件最上層,.config 目錄中具有 .ebextensions 副檔名的檔案。在範例中,設定 Elastic Beanstalk 以啟用環境運作狀態日誌串流,終止環境後保留日誌,並儲存 30 天。

範例 運作狀態串流組態檔案
############################################################################ ## Sets up Elastic Beanstalk to stream environment health information ## to Amazon CloudWatch Logs. ## Works only for environments that have enhanced health reporting enabled. ############################################################################ option_settings: aws:elasticbeanstalk:cloudwatch:logs:health: HealthStreamingEnabled: true ### Settings below this line are optional. # DeleteOnTerminate: Delete the log group when the environment is # terminated. Default is false. If false, the health data is kept # RetentionInDays days. DeleteOnTerminate: false # RetentionInDays: The number of days to keep the archived health data # before it expires, if DeleteOnTerminate isn't set. Default is 7 days. RetentionInDays: 30

如需選項預設值和有效值的詳細資訊,請參閱 aws:elasticbeanstalk:cloudwatch:logs:health