使用 ssm-cli 对 Amazon EC2 托管式实例可用性进行故障排除 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 ssm-cli 对 Amazon EC2 托管式实例可用性进行故障排除

对于要由 Amazon Systems Manager 管理、并在托管式实例列表中列出的 Amazon EC2 实例,它必须满足三个主要要求:

  • SSM Agent 必须在具有受支持的操作系统的实例上安装和运行。

    将一些 Amazon 托管式 Amazon Machine Images(AMIs)配置为启动已预安装 SSM Agent 的实例。(您还可以配置自定义 AMI 以预安装 SSM Agent。) 有关更多信息,请参阅预安装了 SSM Agent 的 Amazon Machine Images(AMIs)

  • 必须将为实例与 Systems Manager 服务进行通信提供所需权限的 Amazon Identity and Access Management (IAM) 实例配置文件附加到该实例。

  • SSM Agent 必须能够连接到 Systems Manager 端点,以便将其自身注册到服务中。此后,实例必须可用于服务,这一点将通过以下方法来确认:服务每隔五分钟发送一个信号,以检查实例的运行状况。

从 SSM Agent 版本 3.1.501.0 开始,您可以使用 ssm-cli 来确定实例是否满足这些要求。ssm-cli 是包含在 SSM Agent 安装中的独立命令行工具。包含用于收集所需信息的预配置命令,以帮助您诊断您已确认正在运行的 Amazon EC2 实例未包含在 Systems Manager 中的托管式实例列表中的原因。这些命令会在您指定 get-diagnostics 选项时运行。

运行以下命令,以借助 ssm-cli 帮助您排除 Amazon EC2 托管式实例可用性的问题。在 Windows 实例上,您必须先导航到 C:\Program Files\Amazon\SSM 目录,才能运行该命令。

Linux & macOS
ssm-cli get-diagnostics --output table
Windows
ssm-cli.exe get-diagnostics --output table
PowerShell
.\ssm-cli.exe get-diagnostics --output table

该命令返回的输出类似于下方内容。对 ssmmessagess3kmslogsmonitoring 端点进行的连接检查针对其他可选功能,例如可以录入到 Amazon Simple Storage Service (Amazon S3) 或 Amazon CloudWatch Logs 并使用 Amazon Key Management Service (Amazon KMS) 加密的 Session Manager。

Linux & macOS
[root@instance]# ssm-cli get-diagnostics --output table ┌───────────────────────────────────────┬─────────┬───────────────────────────────────────────────────────────────────────┐ │ Check │ Status │ Note │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ EC2 IMDS │ Success │ IMDS is accessible and has instance id i-0123456789abcdefa in Region │ │ │ │ us-east-2 │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Hybrid instance registration │ Skipped │ Instance does not have hybrid registration │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssm endpoint │ Success │ ssm.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to ec2messages endpoint │ Success │ ec2messages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssmmessages endpoint │ Success │ ssmmessages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to s3 endpoint │ Success │ s3.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to kms endpoint │ Success │ kms.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to logs endpoint │ Success │ logs.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to monitoring endpoint │ Success │ monitoring.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ AWS Credentials │ Success │ Credentials are for │ │ │ │ arn:aws:sts::123456789012:assumed-role/Fullaccess/i-0123456789abcdefa │ │ │ │ and will expire at 2021-08-17 18:47:49 +0000 UTC │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Agent service │ Success │ Agent service is running and is running as expected user │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Proxy configuration │ Skipped │ No proxy configuration detected │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ SSM Agent version │ Success │ SSM Agent version is 3.0.1209.0, latest available agent version is │ │ │ │ 3.1.192.0 │ └───────────────────────────────────────┴─────────┴───────────────────────────────────────────────────────────────────────┘
Windows
PS C:\Program Files\Amazon\SSM> ssm-cli.exe get-diagnostics --output table ┌───────────────────────────────────────┬─────────┬─────────────────────────────────────────────────────────────────────┐ │ Check │ Status │ Note │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ EC2 IMDS │ Success │ IMDS is accessible and has instance id i-0123456789EXAMPLE in │ │ │ │ Region us-east-2 │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Hybrid instance registration │ Skipped │ Instance does not have hybrid registration │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssm endpoint │ Success │ ssm.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to ec2messages endpoint │ Success │ ec2messages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssmmessages endpoint │ Success │ ssmmessages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to s3 endpoint │ Success │ s3.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to kms endpoint │ Success │ kms.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to logs endpoint │ Success │ logs.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to monitoring endpoint │ Success │ monitoring.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ AWS Credentials │ Success │ Credentials are for │ │ │ │ arn:aws:sts::123456789012:assumed-role/SSM-Role/i-123abc45EXAMPLE │ │ │ │ and will expire at 2021-09-02 13:24:42 +0000 UTC │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Agent service │ Success │ Agent service is running and is running as expected user │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Proxy configuration │ Skipped │ No proxy configuration detected │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Windows sysprep image state │ Success │ Windows image state value is at desired value IMAGE_STATE_COMPLETE │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ SSM Agent version │ Success │ SSM Agent version is 3.0.1209.0, latest agent version in us-east-2 │ │ │ │ is 3.1.192.0 │ └───────────────────────────────────────┴─────────┴─────────────────────────────────────────────────────────────────────┘

下表提供由 ssm-cli 执行的每项检查的其他详细信息。

ssm-cli 诊断检查
Check 详细信息
Amazon EC2 实例元数据服务 实例可以访问实例元数据服务。测试失败表明,与 http://169.254.169.254 的连接出现问题,这可能由本地路由、代理或操作系统 (OS) 防火墙和代理配置引起。
混合实例注册 是否使用混合激活注册 SSM Agent。
连接到 ssm 端点 实例能够在 TCP 端口 443 上访问 Systems Manager 的服务终端节点。测试失败表明,与 https://ssm.region.amazonaws.com 的连接出现问题,具体取决于实例所在的 Amazon Web Services 区域。连接问题可能由 VPC 配置引起,包括安全组、网络访问控制列表、路由表或操作系统防火墙和代理。
连接到 ec2messages 端点 实例能够在 TCP 端口 443 上访问 Systems Manager 的服务终端节点。测试失败表明与 https://ec2messages 的连接问题。领域.amazonaws.com 取决于Amazon Web Services 区域实例所在的位置。连接问题可能由 VPC 配置引起,包括安全组、网络访问控制列表、路由表或操作系统防火墙和代理。
连接到 ssmmessages 端点 实例能够在 TCP 端口 443 上访问 Systems Manager 的服务终端节点。测试失败表明与 https://ssmmessages 的连接问题。领域.amazonaws.com 取决于Amazon Web Services 区域实例所在的位置。连接问题可能由 VPC 配置引起,包括安全组、网络访问控制列表、路由表或操作系统防火墙和代理。
连接到 s3 端点 实例能够在 TCP 端口 443 上访问 Amazon Simple Storage Service 的服务终端节点。测试失败表明与 https://s3 的连接问题。领域.amazonaws.com 取决于Amazon Web Services 区域实例所在的位置。实例无需连接到此端点,即可在托管式实例列表中显示。
连接到 kms 端点

实例能够在 TCP 端口 443 上访问 Amazon Key Management Service 的服务终端节点。测试失败表明与 https://kms 的连接问题。领域.amazonaws.com 取决于Amazon Web Services 区域实例所在的位置。实例无需连接到此端点,即可在托管式实例列表中显示。

连接到 logs 端点 实例能够在 TCP 端口 443 上访问 Amazon CloudWatch Logs 的服务终端节点。测试失败表明与 https://logs 的连接问题。领域.amazonaws.com 取决于Amazon Web Services 区域实例所在的位置。实例无需连接到此端点,即可在托管式实例列表中显示。
连接到 monitoring 端点 实例能够在 TCP 端口 443 上访问 CloudWatch 的服务终端节点。测试失败表明与 https://monitoring 的连接问题。领域.amazonaws.com 取决于Amazon Web Services 区域实例所在的位置。实例无需连接到此端点,即可在托管式实例列表中显示。
Amazon 凭证 SSM Agent 是否具有基于附加到实例的 IAM 实例配置文件所需的凭证。测试失败表明,没有实例配置文件附加到实例,或者它不包含 Systems Manager 所需的权限。
代理服务 SSM Agent 服务是否正在运行,以及该服务是作为 Linux 的根运行,还是作为 Windows 的 SYSTEM 运行。测试失败表明,SSM Agent 服务未运行或未作为根或 SYSTEM 运行。
代理配置 SSM Agent 是否配置为使用代理。
Sysprep 映像状态(仅适用于 Windows) 实例上的 Sysprep 状态。如果 Sysprep 状态是 SSM Agent 以外的值,则 IMAGE_STATE_COMPLETE 不会在实例上开启。
SSM Agent 版本 是否已安装最新可用版本的 SSM Agent。