View a markdown version of this page

AWSSupport-CollectEKSLinuxNodeStatistics - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWSSupport-CollectEKSLinuxNodeStatistics

描述

AWSSupport-CollectEKSLinuxNodeStatistics运行手册从属于 Amazon EKS 集群的 Amazon EC2 实例以及该实例上运行的容器(如果指定了容器 ID)收集 Linux 统计数据。containerdAmazon EC2 实例必须由管理 AWS Systems Manager。

收集的主机级 Linux 统计数据包括:

  • 操作系统信息。

  • 网络接口统计信息-来自ethtool/sys/class/net/interface/statistics目录。

  • 文件描述符很重要。

  • 临时端口很重要。

  • 一堆iptables规则。

  • 查看完整的 conntrack 表。

容器级 Linux 统计数据包括:

  • 标识符信息-图片 URI 和标签。

  • 网络接口统计信息-来自ethtool/sys/class/net/interface/statistics目录。

  • 如果NetworkTargets参数已填充,则会生成跟踪路径和 DNS 结果。

  • 数据包捕获分析计数-TCP 重传、乱序数据包等

该运行手册收集来自各种 Linux 发行版的数据,包括亚马逊 Linux 2、亚马逊 Linux 2023 和 Debian/Ubuntu。它使用来自 Amazon ECR 公共图库的以下图像的最新版本:

  • amazon-ecs-network-sidecar图片以获取故障排除工具的访问权限。

  • aws-cli图片,用于将统计报告 JSON 文件和数据包捕获文件上传到指定的 Amazon S3 存储桶。

重要

本运行手册不支持 Fargate 实例。如果实例在执行期间关闭或断开连接,则此运行手册可能会失败。

如何工作?

运行手册执行以下操作:

  • 验证目标 Amazon S3 存储桶是否未授予公共读取或写入权限。

  • 确保目标 Amazon EC2 实例由 Systems Manager 管理并处于运行状态。

  • 验证实例是否运行 Linux 操作系统。

  • 从 Amazon EC2 实例收集全面的 Linux 统计数据,也可以从指定的容器中收集全面的 Linux 统计数据。

  • 将收集的统计数据上传到指定的 Amazon S3 存储桶。

运行此自动化(控制台)

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

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. AWSSupport-CollectEKSLinuxNodeStatistics在 Systems Manager 的 “文档” 下导航至。

  2. 选择 Execute automation(执行自动化)。

  3. 对于输入参数,请输入以下内容:

    • AutomationAssumeRole (可选):

      允许 Systems Manager Automation 代表您执行操作的 IAM 角色的亚马逊资源名称 (ARN)。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。

    • InstanceId (必填):

      用于收集统计数据的 Amazon EC2 实例的 ID。

    • S3BucketName (必填):

      用于将 JSON 输出从亚马逊 EC2 实例导出为文件的 Amazon S3 存储桶的名称。

    • S3KeyPrefix (可选):

      用于将 Amazon EC2 实例的 JSON 输出作为文件导出的 Amazon S3 密钥前缀(子文件夹)。默认值:AWSSupport-CollectEKSLinuxNodeStatistics

    • S3BucketOwnerRoleArn (可选):

      有权获取 Amazon S3 存储桶和账户封禁公开访问设置、存储桶加密配置、存储桶、存储桶策略状态以及将对象上传到存储桶的 IAM 角色的 ARN。 ACLs如果未指定此参数,则运行手册将使用AutomationAssumeRole(如果已指定)或用户启动此 runbook(如果AutomationAssumeRole未指定)。

    • S3BucketOwnerAccount (可选):

      拥有 Amazon S3 存储桶的 AWS 账户。如果您未指定此参数,则运行手册会假定存储桶位于此账户中。

    • ContainerId (可选):

      在指定的 Amazon EC2 实例上运行的容器的 ID。

    • NetworkTargets (可选):

      以逗号分隔 IPv4 的地址、用于测试 and/or DNS 解析的 DNS 名称以及使用 traceroute 进行连接的列表。

  4. 选择执行。

  5. 自动化启动。

  6. 文档将执行以下步骤:

    • CheckBucketAccess:

      检查目标 Amazon S3 存储桶是否有可能授予对其对象的读 and/or 写公共访问权限。

    • AssertInstanceIsSSMManaged:

      确保目标 Amazon EC2 实例由 Systems Manager 管理,否则自动化将结束。

    • VerifyInstanceState:

      在尝试收集统计数据之前,验证 Amazon EC2 实例是否处于运行状态。

    • BranchOnVerifyLinuxInstance:

      在继续操作之前,请验证该实例是否为 Linux 实例。

    • BranchOnVerifyInstanceRunning:

      在继续操作之前,请验证实例是否处于运行状态。

    • CollectEKSLinuxNodeStatistics:

      从 Amazon EC2 实例收集全面的 Linux 统计数据,包括操作系统信息、网络接口统计信息、文件描述符、临时端口、防火墙规则以及可选的容器级统计信息。

    • GenerateStatisticsOutputS3Uri:

      生成 Linux 统计文件的完整 Amazon S3 URI,用作自动化文档的输出。

  7. 完成后,查看“输出”部分以了解执行的详细结果。

参考

Systems Manager Automation