

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

 **描述** 

 `AWSSupport-CollectElasticBeanstalkLogs` 运行手册从 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）向 `All Users` Amazon S3 预定义组授予 `READ|WRITE` 权限，日志将不会上传。有关 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 ` 命名。*region*和的*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 实例的实例配置文件必须允许对指定的 Amazon S3 存储桶和路径执行 `s3:GetBucketAcl`、`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 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ EnvironmentId

  类型：字符串

  描述：（必需）要从中收集日志捆绑包的 Elastic Beanstalk 环境的 ID。
+ InstanceId

  类型：字符串

  （必需）要从中收集日志捆绑包的 Amazon Beanstalk 环境中的 Amazon EC2 实例的 ID。
+ S3 BucketName

  类型：字符串

  （可选）要将归档的日志上传到的 Amazon S3 存储桶。
+ S3 BucketPath

  类型：字符串

   （可选）要将日志捆绑包上传到的 Amazon S3 存储桶路径。如果您没有为 `S3BucketName` 参数指定一个值，则忽略此参数。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `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 环境的默认存储桶。