View a markdown version of this page

AWSSupport-TroubleshootCloudWatchAgent - AWS Systems Manager Automation Runbook 參考

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

AWSSupport-TroubleshootCloudWatchAgent

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 定價文件。

重要

此 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 來檢查所選執行個體對所需端點的連線能力 (如果啟用)。

執行此自動化 (主控台)

文件類型

 自動化

擁有者

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 AWSSupport-TroubleshootCloudWatchAgent中導覽至 。

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

  3. 針對輸入參數,輸入下列內容:

    • 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

  4. 選取執行

  5. 自動化會啟動。

  6. 文件會執行下列步驟:

    • 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

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

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

參考

Systems Manager Automation