

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

# `AWSSupport-CollectElasticBeanstalkLogs`
<a name="automation-awssupport-collectbeanstalk-logs"></a>

 **Description** 

 `AWSSupport-CollectElasticBeanstalkLogs` Runbook 會從 Elastic Beanstalk 啟動的 Amazon Elastic Compute Cloud (Amazon EC2) Windows Server執行個體收集 AWS Elastic Beanstalk 相關的日誌檔案，協助您疑難排解常見問題。當自動化收集相關的日誌檔案時，會變更檔案系統結構，包括建立暫時目錄、將日誌檔案複製到暫時目錄，以及將日誌檔案壓縮至封存。此活動可能會導致 Amazon EC2 執行個體`CPUUtilization`增加。如需 `CPUUtilization` 的詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[執行個體指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html#ec2-cloudwatch-metrics)。

 如果您指定 `S3BucketName` 參數的值，自動化會評估您指定之 Amazon Simple Storage Service (Amazon S3) 儲存貯體的政策狀態。為了協助保護從 Amazon EC2 執行個體收集之日誌的安全性，如果政策狀態`isPublic`設定為 `true` ，或者存取控制清單 (ACL) 將`READ|WRITE`許可授予 `All Users` Amazon S3 預先定義的群組，則不會上傳日誌。如需 Amazon S3 預先定義群組的詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 預先定義群組](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee-predefined-groups)。 **

 如果您未指定 `S3BucketName` 參數的值，自動化會將日誌套件上傳到執行自動化 AWS 區域 所在 的預設 Elastic Beanstalk Amazon S3 儲存貯體。目錄會根據下列結構 命名` elasticbeanstalk- region - accountID `。*區域*和 *accountID* 值會根據區域和 AWS 帳戶 您在其中執行自動化而有所不同。日誌套件將儲存至 ` resources/environments/logs/bundle/ environmentID / instanceID `目錄。*environmentID* 和 *instanceID* 值會根據 Elastic Beanstalk 環境和您要從中收集日誌的 Amazon EC2 執行個體而有所不同。

 根據預設，連接至 Elastic Beanstalk 環境的 Amazon EC2 執行個體的 AWS Identity and Access Management (IAM) 執行個體描述檔具有必要的許可，可將套件上傳至您環境的預設 Elastic Beanstalk Amazon S3 儲存貯體。如果您指定 `S3BucketName` 參數的值，連接至 Amazon EC2 執行個體的執行個體描述檔必須允許指定 `s3:GetBucketAcl` Amazon S3 儲存貯體和路徑的 `s3:GetBucketPolicy` `s3:GetBucketPolicyStatus` 、、 和 `s3:PutObject`動作。

**注意**  
 此自動化在連接至 Amazon EC2 執行個體的根 Amazon Elastic Block Store (Amazon EBS) 磁碟區上需要至少 500 MB 的可用磁碟空間。如果根磁碟區上的可用磁碟空間不足，自動化會停止。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectElasticBeanstalkLogs) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ EnvironmentId

  類型：字串

  描述：（必要） 您要從中收集日誌套件的 Elastic Beanstalk 環境 ID。
+ InstanceId

  類型：字串

  （必要） 您要從中收集日誌套件的 Elastic Beanstalk 環境中的 Amazon EC2 執行個體 ID。
+ S3BucketName

  類型：字串

  （選用） 您要上傳封存日誌的 Amazon S3 儲存貯體。
+ S3BucketPath

  類型：字串

   （選用） 您要上傳日誌套件的 Amazon S3 儲存貯體路徑。如果您未指定 參數的值，則會忽略此`S3BucketName`參數。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `ssm:SendCommand` 
+  `ssm:DescribeInstanceInformation` 
+  `ec2:DescribeInstances` 

 **文件步驟** 
+  `aws:assertAwsResourceProperty` - 確認您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體是由 管理 AWS Systems Manager。
+  `aws:assertAwsResourceProperty` - 確認您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體是Windows Server執行個體。
+  `aws:runCommand` - 檢查執行個體是否為 Elastic Beanstalk 環境的一部分、是否有足夠磁碟空間來綁定日誌，以及日誌上傳到的 Amazon S3 儲存貯體是否為公有。
+  `aws:runCommand` - 收集日誌檔案，並將封存上傳到 `S3BucketName` 參數中指定的 Amazon S3 儲存貯體，如果未指定值，則上傳到 Elastic Beanstalk 環境的預設儲存貯體。