View a markdown version of this page

AWSSupport-TroubleshootOpenSearchHighCPU - AWS Systems Manager Automation Runbook 參考

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

AWSSupport-TroubleshootOpenSearchHighCPU

Description

AWSSupport-TroubleshootOpenSearchHighCPU Runbook 提供自動化解決方案,從 Amazon OpenSearch Service 網域收集診斷資料,以疑難排解高 CPU 問題。

如何運作?

AWSSupport-TroubleshootOpenSearchHighCPU Runbook 有助於疑難排解 Amazon OpenSearch Service 網域中的高 CPU 使用率。

Runbook 會執行下列步驟:

  • 針對提供的 Amazon OpenSearch Service 網域執行 DescribeDomain API,以取得叢集中繼資料。

  • 檢查 Amazon OpenSearch Service 網域是公有還是 Amazon VPC 型 CloudFormation,並在 的協助下建立公有或 Amazon VPC 型 AWS Lambda 函數。

  • Lambda 函數會從 Amazon OpenSearch Service 網域擷取診斷資料。

  • 使用 AWS Step Functions 狀態機器來協調多個 Lambda 函數執行,以收集更全面的資料。

  • 預設會將收集的資料儲存在 Amazon CloudWatch 日誌群組中 24 小時。

  • 刪除已建立的資源,但 CloudWatch 日誌群組除外。

文件類型

 自動化

擁有者

Amazon

平台

Linux、macOS、 Windows

參數

必要的 IAM 許可

AutomationAssumeRole 參數需要下列動作才能成功使用 Runbook。

  • cloudformation:CreateStack

  • cloudformation:CreateStack

  • cloudformation:DescribeStacks

  • cloudformation:DescribeStackEvents

  • cloudformation:DeleteStack

  • lambda:CreateFunction

  • lambda:DeleteFunction

  • lambda:InvokeFunction

  • lambda:GetFunction

  • lambda:TagResource

  • es:DescribeDomain

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:DescribeInstances

  • ec2:AttachNetworkInterface

  • ec2:DeleteNetworkInterface

  • logs:CreateLogGroup

  • logs:PutRetentionPolicy

  • logs:TagResource

  • states:CreateStateMachine

  • states:DeleteStateMachine

  • states:StartExecution

  • states:TagResource

  • states:DescribeStateMachine

  • states:DescribeExecution

  • iam:PassRole

  • iam:CreateRole

  • iam:DeleteRole

  • iam:GetRole

  • iam:PutRolePolicy

  • iam:DeleteRolePolicy

  • ssm:DescribeAutomationExecutions

  • ssm:GetAutomationExecution

注意

iam:DeleteRolePolicy 只有在您未使用 LambdaInvocationRoleForStepFunctions 參數的現有 IAM 角色時,才需要 iam:CreateRole iam:DeleteRole iam:GetRole iam:PutRolePolicy iam:PutRolePolicy、、、 和

LambdaExecutionRole 參數需要下列動作才能成功使用 Runbook:

  • es:ESHttpGet

  • ec2:CreateNetworkInterface

  • ec2:DescribeNetworkInterfaces

  • ec2:DeleteNetworkInterface

  • logs:CreateLogStream

  • logs:PutLogEvents

Lambda 執行角色會授予函數存取此 Runbook 所需 AWS 服務和資源的許可。如需更多詳細資訊,請參閱 Lambda 執行角色

注意

ec2:DeleteNetworkInterface 只有當您的 OpenSearch Service 叢集是以 Amazon VPC 為基礎,以允許 Lambda ec2:DescribeNetworkInterfaces函數建立和管理 Amazon VPC 網路介面時,才需要 ec2:CreateNetworkInterface、 和 。如需詳細資訊,請參閱將傳出聯網連接到 Amazon VPC 和 Lambda 執行角色中的資源https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html

LambdaInvocationRoleForStepFunctions 參數會授予狀態機器叫用 Lambda 函數的許可 AWS Step Functions 。以下是授予 Step Functions 許可的範例 IAM 政策,以叫用從 OpenSearch Service 網域擷取診斷資料的 Lambda 函數。如需詳細資訊,請參閱《 AWS Step Functions 開發人員指南》中的建立狀態機器 IAM 角色

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:us-east-1:111122223333:function:AWSSupport-HighCPU-*" ] } ] }

指示

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

  1. 導覽至主控台中的 AWSSupport-TroubleshootOpenSearchHighCPU AWS Systems Manager 。

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

  3. 針對輸入參數,輸入下列項目:

    • AutomationAssumeRole (選用):

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

    • DomainName (必要):

      您要針對高 CPU 問題進行疑難排解的 Amazon OpenSearch Service 網域名稱。

    • LambdaExecutionRoleForOpenSearch (必要):

      要連接至 Lambda 函數之 IAM 角色的 ARN。Lambda 函數會使用來自此角色的登入資料來簽署對 Amazon OpenSearch Service 網域的請求。如果已在 Amazon OpenSearch Service 網域上啟用精細存取控制,您必須將此角色映射至至少具有「cluster_monitor」許可的 OpenSearch Service Dashboards 後端角色。

    • LambdaInvocationRoleForStepFunctions (選用):

      (選用) 要連接至 Step Functions 工作流程之 IAM 角色的 ARN。狀態機器會使用此角色的登入資料來叫用從 OpenSearch Service 網域擷取診斷資料的 Lambda 函數。如果未指定角色,此自動化將為帳戶中的 Step Functions 建立 IAM 角色。

    • DataRetentionDays (選用):

      保留從 Amazon OpenSearch Service 網域收集之診斷資料的天數。根據預設,資料會保留 24 小時 (一天)。您可以選擇將資料保留最多 30 天。

    • NumberOfDataSamples (選用):

      從 Amazon OpenSearch Service 網域收集的資料範例數目。根據預設,會收集 5 個資料範例。您最多可以收集 10 個範例,而且每個範例收集都會叫用 Lambda 函數。

  4. 如果您已在 OpenSearch Service 叢集上啟用精細存取控制,請確定LambdaExecutionRole角色 ARN 已映射至至少具有 cluster_monitor 許可的角色。

    叢集 permissions section showing cluster_monitor permission granted.
    Backend roles interface showing an AWSIAM role for Lambda execution and options to remove or add roles.
  5. 選取執行。

  6. 自動化會啟動。

  7. 自動化 Runbook 會執行下列步驟:

    • checkConcurrency:

      確保只有一個針對指定 Amazon OpenSearch Service 網域的 Runbook 執行。如果 Runbook 找到另一個以相同網域名稱為目標的執行,則會傳回錯誤並結束。

    • getDomainConfig:

      取得目標 OpenSearch Service 網域的組態詳細資訊。

    • provisionResources:

      使用 佈建用於資料收集的資源 CloudFormation。

    • waitForStackCreation:

      等待 CloudFormation 堆疊完成。

    • describeStackResources:

      描述 CloudFormation 堆疊並取得狀態機器的 ARN。

    • runStateMachine:

      執行 Step Functions 狀態機器,以叫用資料收集器 Lambda 函數一或多次。

    • describeErrorsFromStackEvents:

      描述來自 CloudFormation 堆疊的錯誤。

    • unstageOpenSearchHighCPUAutomation:

      刪除AWSSupport-TroubleshootOpenSearchHighCPU CloudFormation 堆疊。

    • describeErrorsFromStackDeletion:

      描述刪除 CloudFormation 堆疊時遇到的錯誤。

    • finalStatus:

      傳回 AWSSupport-TroubleshootOpenSearchHighCPU Runbook 的最終輸出。

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

    • finalStatus.FinalOutput:

      提供存放診斷資料的 CloudWatch 日誌群組。

    Output message indicating hot thread data collection completed with log group details.

參考

Systems Manager Automation

AWS 服務文件