

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

# `AWSSupport-CollectECSInstanceLogs`
<a name="automation-awssupport-collectecsinstancelogs"></a>

 **Description** 

 `AWSSupport-CollectECSInstanceLogs` Runbook 會從 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體收集作業系統和 Amazon Elastic Container Service (Amazon ECS) 相關日誌檔案，以協助您疑難排解常見的 Amazon ECS 問題。當自動化收集相關聯的日誌檔案時，會變更檔案系統。這些變更包括建立暫時目錄和日誌目錄、將日誌檔案複製到這些目錄，以及將日誌檔案壓縮至封存。

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

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、Windows

**參數**
+ AutomationAssumeRole

  類型：字串

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

  類型：字串

  描述：（必要） 您要從中收集日誌的執行個體 ID。您指定的執行個體必須由 Systems Manager 管理。
+ LogDestination

  類型：字串

  描述：（選用） AWS 帳戶 要上傳封存日誌的 Amazon S3 儲存貯體。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `ssm:ListCommandInvocations` 
+  `ssm:ListCommands` 
+  `ssm:SendCommand` 
+  `ssm:DescribeInstanceInformation` 

 建議您在 `ECSInstanceId` 參數中指定的 Amazon EC2 執行個體具有連接 Amazon 受管政策的 IAM `AmazonSSMManagedInstanceCore` 角色。若要將日誌封存上傳至您在 `LogDestination` 參數中指定的 Amazon S3 儲存貯體，您必須新增下列許可：
+  `s3:PutObject` 
+  `s3:ListBucket` 
+  `s3:GetBucketPolicyStatus` 
+  `s3:GetBucketAcl` 

 **文件步驟** 
+  `assertInstanceIsManaged` - 驗證您在 `ECSInstanceId` 參數中指定的執行個體是否由 Systems Manager 管理。
+  `getInstancePlatform` - 取得 `ECSInstanceId` 參數中指定之執行個體的作業系統 (OS) 平台的相關資訊。
+  `verifyInstancePlatform` - 根據作業系統平台配置自動化。
+  `runLogCollectionScriptOnLinux` - 在 Linux 執行個體上收集作業系統和 Amazon ECS 相關日誌檔案，並在 `/var/log/collectECSlogs`目錄中建立封存檔案。
+  `runLogCollectionScriptOnWindows` - 在 Windows 執行個體上收集作業系統和 Amazon ECS 相關日誌檔案，並在 `C:\ProgramData\collectECSlogs`目錄中建立封存檔案。
+  `verifyIfS3BucketProvided` - 驗證是否已為 `LogDestination` 參數指定值。
+  `runUploadScript` - 根據作業系統平台分支自動化步驟。
+  `runUploadScriptOnLinux` - 將日誌封存上傳至 `LogDestination` 參數中指定的 Amazon S3 儲存貯體，並從作業系統刪除封存的日誌檔案。
+  `runUploadScriptOnWindows` - 將日誌封存上傳至 `LogDestination` 參數中指定的 Amazon S3 儲存貯體，並從作業系統刪除封存的日誌檔案。