View a markdown version of this page

AWSSupport-CollectEKSLinuxNodeStatistics - AWS Systems Manager Automation Runbook 參考

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

AWSSupport-CollectEKSLinuxNodeStatistics

Description

AWSSupport-CollectEKSLinuxNodeStatistics Runbook 會從屬於 Amazon EKS 叢集的 Amazon EC2 執行個體,以及指定容器 ID 時,從執行個體上執行的containerd容器收集 Linux 統計資料。Amazon EC2 執行個體必須由 管理 AWS Systems Manager。

收集的主機層級 Linux 統計資料包括:

  • 作業系統資訊。

  • 網路介面統計資料 - 來自 ethtool/sys/class/net/interface/statistics目錄。

  • 檔案描述項計數。

  • 暫時性連接埠計數。

  • iptables 規則傾印。

  • 檢查完整的連線資料表。

容器層級 Linux 統計資料包括:

  • 識別符資訊 - 映像 URI 和標籤。

  • 網路介面統計資料 - 來自 ethtool/sys/class/net/interface/statistics目錄。

  • 如果已填入 NetworkTargets 參數,則追蹤路由和 DNS 結果。

  • 封包擷取分析計數 - TCP 重新傳輸、無序封包等。

Runbook 會從各種 Linux 發行版本收集資料,包括 Amazon Linux 2、Amazon Linux 2023 和 Debian/Ubuntu。它使用來自 Amazon ECR 公有圖庫的下列映像的最新版本:

  • amazon-ecs-network-sidecar 映像,以取得疑難排解工具的存取權。

  • aws-cli 影像,將統計資料報告 JSON 檔案和封包擷取檔案上傳至指定的 Amazon S3 儲存貯體。

重要

此 Runbook 不支援 Fargate 執行個體。如果執行個體在執行期間關閉或中斷連線,此 Runbook 可能會失敗。

如何運作?

Runbook 會執行下列動作:

  • 驗證目標 Amazon S3 儲存貯體未授予公有讀取或寫入存取權。

  • 確保目標 Amazon EC2 執行個體由 Systems Manager 管理,且處於執行中狀態。

  • 驗證執行個體是否正在執行 Linux 作業系統。

  • 從 Amazon EC2 執行個體收集完整的 Linux 統計資料,也可以選擇從指定的容器收集。

  • 將收集到的統計資料上傳至指定的 Amazon S3 儲存貯體。

執行此自動化 (主控台)

必要的 IAM 許可

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

AutomationAssumeRole 參數需要下列動作:

  • s3:GetAccountPublicAccessBlock

  • s3:GetBucketPublicAccessBlock

  • s3:GetBucketAcl

  • s3:GetBucketPolicyStatus

  • s3:GetBucketLocation

  • s3:GetEncryptionConfiguration

  • s3:PutObject

  • ssm:DescribeInstanceInformation

  • ssm:SendCommand

  • ssm:GetCommandInvocation

  • ec2:DescribeInstances

IAM 政策範例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketPolicyStatus", "s3:GetBucketLocation", "s3:GetEncryptionConfiguration" ], "Resource": "arn:aws:s3:::S3_BUCKET_NAME" }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::S3_BUCKET_NAME/*" }, { "Effect": "Allow", "Action": [ "ssm:DescribeInstanceInformation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ssm:*:*:document/AWS-RunShellScript", "arn:aws:ec2:*:111122223333:instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetCommandInvocation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances" ], "Resource": "*" } ] }

指示

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

  1. 在文件下的 Systems Manager AWSSupport-CollectEKSLinuxNodeStatistics中導覽至 。

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

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

    • AutomationAssumeRole (選用):

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

    • InstanceId (必要):

      要收集統計資料的 Amazon EC2 執行個體 ID。

    • S3BucketName (必要):

      Amazon S3 儲存貯體的名稱,可將 Amazon EC2 執行個體的 JSON 輸出匯出為 檔案。

    • S3KeyPrefix (選用):

      從 Amazon EC2 執行個體將 JSON 輸出匯出為 檔案的 Amazon S3 金鑰字首 (子資料夾)。 Amazon EC2 預設:AWSSupport-CollectEKSLinuxNodeStatistics

    • S3BucketOwnerRoleArn (選用):

      IAM 角色的 ARN,具有取得 Amazon S3 儲存貯體和帳戶區塊公開存取設定、儲存貯體加密組態、儲存貯體 ACLs、儲存貯體政策狀態,以及將物件上傳至儲存貯體的許可。如果未指定此參數,則 Runbook 會使用 AutomationAssumeRole(如果指定) 或啟動此 Runbook 的使用者 (如果AutomationAssumeRole未指定)。

    • S3BucketOwnerAccount (選用):

      擁有 Amazon S3 儲存貯體 AWS 的帳戶。如果您未指定此參數,則 Runbook 會假設儲存貯體位於此帳戶中。

    • ContainerId (選用):

      在指定 Amazon EC2 執行個體上執行的容器 ID。

    • NetworkTargets (選用):

      以逗號分隔的 IPv4 地址和/或 DNS 名稱清單,用於測試 DNS 解析,以及使用 traceroute 的連線。

  4. 選取執行。

  5. 自動化會啟動。

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

    • CheckBucketAccess:

      檢查目標 Amazon S3 儲存貯體是否可能授予其物件的讀取和/或寫入公開存取權。

    • AssertInstanceIsSSMManaged:

      確保目標 Amazon EC2 執行個體由 Systems Manager 管理,否則自動化會結束。

    • VerifyInstanceState:

      在嘗試收集統計資料之前,驗證 Amazon EC2 執行個體是否處於執行中狀態。

    • BranchOnVerifyLinuxInstance:

      在繼續之前,驗證執行個體是否為 Linux 執行個體。

    • BranchOnVerifyInstanceRunning:

      在繼續之前,確認執行個體處於執行中狀態。

    • CollectEKSLinuxNodeStatistics:

      從 Amazon EC2 執行個體收集完整的 Linux 統計資料,包括作業系統資訊、網路介面統計資料、檔案描述項、暫時性連接埠、防火牆規則,以及選用的容器層級統計資料。

    • GenerateStatisticsOutputS3Uri:

      將完整的 Amazon S3 URI 產生到 Linux 統計資料檔案,以做為自動化文件的輸出。

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

參考

Systems Manager Automation