

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

# `AWSSupport-TroubleshootCloudWatchAgent`
<a name="automation-aws-troubleshootcloudwatchagent"></a>

 **Description** 

**AWSSupport-TroubleshootCloudWatchAgent** Runbook 會自動對 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的 Amazon CloudWatch Agent 進行故障診斷。Amazon EC2 Runbook 會透過一系列基本和 （選用） 延伸檢查來執行此故障診斷。

基本檢查包括下列項目：
+ 檢查 AWS Identity and Access Management (IAM) 執行個體描述檔
+ 確認必要的 Amazon CloudWatch Agent IAM 許可是否已連接到 Amazon EC2 執行個體

只有在提供的 Amazon EC2 執行個體 ID 是 Systems Manager 受管執行個體時，才會執行延伸檢查。這些延伸檢查包括下列項目：
+ 檢查執行個體上 Amazon CloudWatch Agent 的狀態
+ 分析 Amazon CloudWatch Agent 的日誌，了解常見問題和相關的故障診斷步驟
+ 壓縮 Amazon EC2 執行個體上的相關日誌和組態檔案，並選擇性地將其上傳至您選擇的 Amazon Simple Storage Service (Amazon S3) 儲存貯體
+ 執行執行個體與所需端點之間的連線檢查

**重要**  
當 `RunVpcReachabilityAnalyzer` 參數設為 時`true`，此 Runbook 會判斷是否需要呼叫子 Runbook `AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`。子 Runbook 使用具有相關聯成本的 VPC Reachability Analyzer。如需定價的詳細資訊，請參閱 [Amazon VPC 定價](https://aws.amazon.com/vpc/pricing/)文件。

**重要**  
此 Runbook 只會檢查您的 IAM 執行個體描述檔角色是否有必要的許可。如果您改為依賴`.aws/credentials`檔案中定義的登入資料，則`verifyIamPermissions`步驟的結果可能不準確。

 **如何運作？** 

Runbook 會執行下列步驟：
+ **getInstanceProfile**：驗證提供的 Amazon EC2 執行個體是否已連接 IAM 執行個體描述檔。
+ **verifyIamPermissions**：檢查與執行個體相關聯的執行個體描述檔，以判斷是否套用必要的 IAM 許可。
+ **getInstanceInformation**：檢查執行個體是否具有作用中的 Systems Manager 代理程式，並擷取執行個體的作業系統類型。
+ **getAgentStatus**：檢查執行個體上 Amazon CloudWatch Agent 的狀態 （延伸檢查）。
+ **analyzeLogs/analyzeLogsWindows**：根據作業系統類型分析和輸出 Amazon CloudWatch Agent 日誌的問題清單。
+ **collectLogs/collectLogsWindows**：根據作業系統類型封裝和輸出相關的 Amazon CloudWatch Agent 故障診斷檔案。
+ **checkEndpointReachability/checkEndpointReachabilityWindows**：根據作業系統類型檢查執行個體是否可以到達所需的端點。
+ **analyzeAwsEndpointReachabilityFromEC2**：呼叫子自動化 Runbook 來檢查所選執行個體對所需端點的連線能力 （如果啟用）。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

/

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ ec2:DescribeInstances
+ iam:GetInstanceProfile
+ iam:GetRole
+ iam:ListAttachedRolePolicies
+ iam:ListRolePolicies
+ iam:GetRolePolicy
+ iam:GetPolicy
+ iam:GetPolicyVersion
+ iam:SimulatePrincipalPolicy
+ ssm:DescribeInstanceInformation
+ ssm:SendCommand
+ ssm:GetCommandInvocation
+ ssm:DescribeInstanceAssociationsStatus
+ ssm:StartAutomationExecution

範例政策：

```
{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "iam:GetInstanceProfile",
                "iam:GetRole",
                "iam:ListAttachedRolePolicies",
                "iam:ListRolePolicies",
                "iam:GetRolePolicy",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:SimulatePrincipalPolicy",
                "ssm:DescribeInstanceInformation",
                "ssm:SendCommand",
                "ssm:GetCommandInvocation",
                "ssm:DescribeInstanceAssociationsStatus",
                "ssm:StartAutomationExecution"
            ],
            "Resource": "*"
            }
        ]
        }
```

 **指示** 

請依照下列步驟設定自動化：

1. 在文件下的 Systems Manager [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAgent/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAgent/description)中導覽至 。

1. 選擇 **Execute automation** (執行自動化)。

1. 針對輸入參數，輸入下列內容：
   + **AutomationAssumeRole （選用）：**
     + 描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 IAM 角色 ARN。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
     + 類型：`AWS::IAM::Role::Arn`
   + **InstanceId （必要）：**
     + 描述：（必要） 您要對 Amazon CloudWatch Agent 進行故障診斷的 Amazon EC2 執行個體 ID。 Amazon CloudWatch 
     + 類型：`AWS::EC2::Instance::Id`
     + 允許模式： `^i-[0-9a-f]{8,17}$`
   + **S3UploadBucket （選用）：**
     + 描述：（選用） 要上傳所收集 Amazon CloudWatch Agent 日誌的 Amazon S3 儲存貯體名稱。 Amazon CloudWatch Amazon EC2 執行個體描述檔必須具有正確的許可，才能將檔案上傳至此儲存貯體。這也需要目標 Amazon EC2 執行個體成為 Systems Manager 受管執行個體。
     + 類型：`AWS::S3::Bucket::Name`
     + 允許模式： `^$|^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$`
     + 預設：`""`
   + **S3BucketOwnerAccountId （選用）：**
     + 描述：（選用） 擁有您要上傳 Amazon CloudWatch Agent 日誌之 Amazon S3 儲存貯體的 AWS 帳號。 Amazon CloudWatch 如果您不修改此參數， Runbook 會使用自動化執行所在使用者或角色 AWS 的帳戶 ID。
     + 類型：`String`
     + 允許模式： `^\\{\\{ global:ACCOUNT_ID \\}\\}$|^[0-9]{12}$`
     + 預設：`{{ global:ACCOUNT_ID }}`
   + **CheckEC2Endpoint （選用）：**
     + 描述：（選用） 指定您的代理程式組態`true`是否使用 選項`append_dimensions`，將 Amazon EC2 指標維度附加至代理程式收集的指標。`append_dimensions` 使用 時，Amazon CloudWatch Agent 需要連線至 Amazon EC2 API 端點，因此將透過延伸檢查執行額外的連線測試。
     + 類型：`String`
     + 允許的值： `[true, false]`
     + 預設：`false`
   + **RunVpcReachabilityAnalyzer （選用）：**
     + 描述：（選用） 如果網路問題是由延伸檢查決定，或指定的執行個體 ID 不是受管執行個體，請指定 `true`來執行`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`子自動化。
     + 類型：`Boolean`
     + 預設：`false`
   + **RetainVpcReachabilityAnalysis （選用）：**
     + 描述：（選用） 只有在 `RunVpcReachabilityAnalyzer`為 時才相關`true`。指定 `true`以保留 VPC Reachability Analyzer 建立的網路洞見路徑和相關分析。根據預設，這些資源會在成功分析後刪除。
     + 類型：`Boolean`
     + 預設：`false`

1. 選取**執行**。

1. 自動化會啟動。

1. 文件會執行下列步驟：
   + **getInstanceProfile**：

     驗證提供的 Amazon EC2 執行個體是否已連接 IAM 執行個體描述檔。
   + **branchOnInstanceProfileStatus**：

     分支自動化，以檢查執行個體描述檔是否連接到執行個體的必要執行個體描述檔許可。
   + **verifyIamPermissions**：

     檢查與執行個體相關聯的執行個體描述檔，以判斷是否套用必要的 IAM 許可。
   + **getInstanceInformation**：

     檢查執行個體是否有作用中的 Systems Manager 代理程式，並擷取執行個體的作業系統類型。
   + **branchOnManagedInstance**：

     分支自動化，以在執行個體受管時執行延伸檢查。
   + **getAgentStatus**：

     檢查執行個體上 Amazon CloudWatch Agent 的狀態。
   + **branchOnInstanceOsType**：

     分支自動化以根據作業系統執行特定的日誌收集/分析命令。
   + **analyzeLogs/analyzeLogsWindows**：

     根據作業系統類型分析和輸出 Amazon CloudWatch Agent 日誌的問題清單。
   + **collectLogs/collectLogsWindows**：

     根據作業系統類型封裝和輸出相關的 Amazon CloudWatch Agent 故障診斷檔案。
   + **checkEndpointReachability/checkEndpointReachabilityWindows**：

     檢查執行個體是否可以根據作業系統類型到達所需的端點。
   + **branchOnRunVpcReachabilityAnalyzer**：

     如果已啟用並偵測到網路問題， 會分支自動化以執行 VPC 連線能力分析。
   + **generateEndpoints**：

     產生端點以從延伸檢查失敗和 的值進行檢查`CheckEC2Endpoint`。
   + **analyzeAwsEndpointReachabilityFromEC2**：

     呼叫自動化 Runbook，`AWSSupport-AnalyzeAWSEndpointReachabilityFromEC2`以檢查所選執行個體對所需端點的連線能力。
   + **outputFindings**：

     輸出自動化執行步驟的結果。

1. 完成後，請檢閱**輸出**區段以取得執行的詳細結果。

**參考**

Systems Manager Automation
+ [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootCloudWatchAgent/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/)