

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

# `AWSSupport-CollectSAPHANALogs`
<a name="automation-awssupport-collectsaphanalogs"></a>

 **描述** 

该`AWSSupport-CollectSAPHANALogs`运行手册在部署时从 SAP HANA 收集亚马逊弹性计算云 (Amazon EC2) 实例上的系统日志，该实例是 SAP 的一部分。 AWS Amazon EC2 实例必须由 AWS Systems Manager （Systems Manager）管理。运行手册会检查所需的软件包并在缺失时进行安装，针对检测到的操作系统运行相应的日志收集工具，并可选择将收集的日志上传到亚马逊简单存储服务 (Amazon S3) 存储桶。

**重要**  
此运行手册要求`/var/log`分区上至少有 200 MB 的可用磁盘空间。运行此运行手册可能会在目标 Amazon EC2 实例上安装其他软件包。您必须通过将`Acknowledgement`参数设置为来确认这一点`Yes`。在 Amazon S3 中存储日志会产生标准的 Amazon S3 存储和请求费用。

 **支持的操作系统** 
+ Red Hat Enterprise Linux8.4 及更高版本
+ SUSE Linux Enterprise Server12 SP5
+ SUSE Linux Enterprise Server15 SP3 及更高版本

 **如果缺少软件包，则已安装** 

SUSE Linux Enterprise Server:
+ `supportutils`
+ `yast2-support`
+ `supportutils-plugin-suse-public-cloud`
+ `supportutils-plugin-ha-sap`
+ `crmsh`
+ `unzip`
+ `curl`
+ `aws-cli`（可选，如果设置`InstallAWSCLI`为，则安装`Yes`）

Red Hat Enterprise Linux:
+ `sos`
+ `crm_report`
+ `unzip`
+ `curl`
+ `aws-cli`（可选，如果设置`InstallAWSCLI`为，则安装`Yes`）

[运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CollectSAPHANALogs)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（可选）允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
+ InstanceID

  类型:: AWS::EC2::Instance: ID

  描述：（必填）运行 SAP 工作负载的 Amazon EC2 实例的 ID，应从中收集日志。
+ 确认

  类型：字符串

  有效值：是

  描述：（必填）我确认本运行手册可能会在目标 Amazon EC2 实例中安装其他软件包以进行日志收集。
+ S3 LogDestination

  类型:: AWS::S3::Bucket: 姓名

  描述：（可选）将日志上传到的 Amazon S3 存储桶的名称。存储桶不能是公开的，并且必须属于同一个 AWS 账户。如果未提供，则日志存储在实例本地存储中。
+ S3Prefix

  类型：字符串

  默认： AWSSupport-CollectSAPHANALogs

  允许的模式：`^$|^[a-zA-Z0-9][-./a-zA-Z0-9]{0,255}$`

  描述：（可选）存储日志的 Amazon S3 存储桶前缀。如果未提供，则默认为`AWSSupport-CollectSAPHANALogs`。
+ 安装 AWSCLI

  类型：字符串

  有效值：是 \$1 否

  默认：否

  描述：（可选）是否在实例上安装 AWS CLI。如果是`Yes`，则运行手册会安装 AWS CLI（如果还没有）。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `ssm:DescribeInstanceInformation`
+ `ssm:SendCommand`
+ `ssm:GetCommandInvocation`
+ `s3:GetBucketPublicAccessBlock`
+ `s3:GetBucketAcl`
+ `s3:GetBucketLocation`
+ `s3:GetBucketOwnershipControls`
+ `s3:GetEncryptionConfiguration`
+ `s3:PutObject`

 **文档步骤** 

1. `AssertInstanceIsSSMManaged`-验证目标 Amazon EC2 实例是否由 Systems Manager 管理并且为`PingStatus`。`Online`如果实例未被托管，则运行手册将被取消。

1. `GetInstanceInformation`-检索有关指定 Amazon EC2 实例的信息，包括用于确定适当的日志收集方法的平台名称。

1. `CollectLogs`-在实例上运行 shell 脚本以收集日志。例如SUSE Linux Enterprise Server，脚本使用`supportconfig`。例如Red Hat Enterprise Linux，它使用`sos report`。对于 HA 集群，该脚本还使用`crm report`命令收集过去 7 天内的其他 HA 日志。如果缺少必需的软件包，则安装完毕。

1. `BranchOnS3BucketProvided`-根据中是否提供了 Amazon S3 存储桶来分支执行`S3LogDestination`。如果未提供存储桶，则运行手册将跳至。`GenerateReport`否则，它会继续`CheckS3BucketPublicStatus`。

1. `CheckS3BucketPublicStatus`-检查中指定的 Amazon S3 存储桶`S3LogDestination`是否配置了服务器端加密 (SSE)，以及它是否允许匿名或公开读取或写入访问权限。还会验证实际的存储桶拥有者是否与预期的存储桶拥有者相同。如果此步骤失败，则运行手册将继续运行`GenerateReport`而不上传。

1. `UploadLogsToS3`-将收集的日志上传到指定的 Amazon S3 存储桶。如果设置`InstallAWSCLI`为`Yes`，但未安装 AWS CLI，则脚本会在上传之前安装 AWS CLI。

1. `GenerateReport`-生成日志收集过程报告。如果提供了 Amazon S3 存储桶，则它会包含上传日志的 Amazon S3 存储桶名称和前缀。如果不是，则表示日志存储在实例本地。它还会报告任何先前步骤失败的原因。

 **输出** 

`GenerateReport.Summary`-日志收集结果摘要。

`GenerateReport.LogLocation`-存储日志的位置，可以是实例上的本地路径，也可以是 Amazon S3 URI。

`GenerateReport.Status`-日志收集执行的总体状态。

 **说明** 

按照这些步骤对自动化进行配置：

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectSAPHANALogs/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectSAPHANALogs/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**

     允许 Systems Manager Automation 代表你执行操作的 IAM 角色的 ARN。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **实例 ID（必填）：**

     运行 SAP 工作负载的 Amazon EC2 实例的 ID。
   + **致谢（必填）：**

     输入`Yes`以确认运行手册可能会在目标 Amazon EC2 实例上安装其他软件包。
   + **S3LogDestination （可选）：**

     要将日志上传到的 Amazon S3 存储桶的名称。如果未提供，则日志存储在实例本地。
   + **S3Prefix（可选）：**

     存储日志的 Amazon S3 存储桶前缀。默认值为 `AWSSupport-CollectSAPHANALogs`。
   + **安装AWSCLI （可选）：**

     如果实例上没有 AWS CLI，请选择`Yes`自动安装 CLI。默认值为 `No`。

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`AssertInstanceIsSSMManaged`**

     验证目标 Amazon EC2 实例是否由 Systems Manager 管理并且为`PingStatus`。`Online`
   + **`GetInstanceInformation`**

     检索有关指定 Amazon EC2 实例的信息，包括平台名称。
   + **`CollectLogs`**

     运行 shell 脚本以使用 for SLES 或 `sos report` f `supportconfig` or 收集日志RHEL。对于 HA 集群，还可以使用收集过去 7 天的 HA 日志`crm report`。
   + **`BranchOnS3BucketProvided`**

     `GenerateReport`如果未提供 Amazon S3 存储桶，则跳至，否则继续执行。`CheckS3BucketPublicStatus`
   + **`CheckS3BucketPublicStatus`**

     验证 Amazon S3 存储桶已启用 SSE、不允许公开访问且归同一个 AWS 账户所有。
   + **`UploadLogsToS3`**

     将收集的日志上传到指定的 Amazon S3 存储桶。如果`InstallAWSCLI`是，则安装 AWS CLI`Yes`，但它还不存在。
   + **`GenerateReport`**

     生成日志收集结果的摘要，包括日志位置和任何步骤失败。

1. 完成后，请查看 “输出” 部分，了解执行的详细结果。

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CollectSAPHANALogs/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)