Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Systems Manager Run Command 疑难解答

使用以下信息来帮助解决与 Run Command 相关的问题。

我的实例在哪里?

如果您选择 Select Target instances 后未看到预期的实例列表,请验证以下内容。

  • 您在实例上安装了 SSM 代理的最新版本。Amazon EC2 Windows Amazon Machine Image (AMI) 预配置了 SSM 代理。Linux AMI 则没有。有关在实例上安装 SSM 代理的信息,请参阅 在 Linux 上安装 SSM 代理 (适用于 Linux) 或 在 Windows 上安装 SSM 代理 (适用于 Windows)。

  • 您的实例配置了 AWS Identity and Access Management (IAM) 角色,使得此实例能够与 Systems Manager API 通信。此外,还验证您的用户账户是否具有一个允许您的账户与 Systems Manager API 通信的 IAM 用户信任策略。有关更多信息,请参阅 为 Systems Manager 配置安全角色

使用 Health API 检查实例状态

您可以使用 Amazon EC2 Health API 快速确定以下有关 Amazon EC2 实例的信息:

  • 一个或多个实例的状态

  • 该实例上次发送检测信号值的时间

  • SSM 代理的版本

  • 操作系统

  • EC2Config 服务的版本 (Windows)

  • EC2Config 服务的状态 (Windows)

在 Windows 实例上使用 Health API

使用以下命令可获取有关一个或多个实例的状态详细信息:

Copy
Get-SSMInstanceInformation -InstanceInformationFilterList @{Key="InstanceIds";ValueSet="instance-ID","instance-ID"}

使用以下不带筛选条件的命令可查看注册到您的账户的当前报告联机状态的所有实例。将 ValueSet="Online" 替换为 "ConnectionLost" 或 "Inactive" 可查看这些状态:

Copy
Get-SSMInstanceInformation -InstanceInformationFilterList @{Key="PingStatus";ValueSet="Online"}

使用以下命令可查看哪些实例正在运行 EC2Config 服务的最新版本。将 ValueSet="LATEST" 替换为特定版本 (例如,3.0.54 或 3.10) 可查看这些详细信息:

Copy
Get-SSMInstanceInformation -InstanceInformationFilterList @{Key="AgentVersion";ValueSet="LATEST"}

在 Linux 实例上使用 Health API

使用以下命令可获取有关一个或多个实例的状态详细信息:

Copy
aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=instance-ID

使用以下不带筛选条件的命令可查看注册到您的账户的当前报告联机状态的所有实例。将 ValueSet="Online" 替换为 "ConnectionLost" 或 "Inactive" 可查看这些状态:

Copy
aws ssm describe-instance-information --instance-information-filter-list key=PingStatus,valueSet=Online

使用以下命令可查看哪些实例正在运行 SSM 代理的最新版本。将 ValueSet="LATEST" 替换为特定版本 (例如,1.0.145 或 1.0) 可查看这些详细信息:

Copy
aws ssm describe-instance-information --instance-information-filter-list key=AgentVersion,valueSet=LATEST

如果 describe-instance-information API 操作返回有关是否联机的 AgentStatus,则可随时使用 Run Command 来管理实例。如果状态为“Inactive”,则该实例具有下面的一个或多个问题。

  • 未安装 SSM 代理。

  • 实例没有出站 Internet 连接。

  • 未使用支持实例与 SSM API 通信的 IAM 角色来启动实例,或 IAM 角色的权限对 Run Command 不适用。有关更多信息,请参阅 为 Systems Manager 配置安全角色

SSM 代理故障排除

如果您在使用 Run Command 执行命令时遇到问题,则可能是因为 SSM 代理有问题。使用以下信息可帮助您排查代理问题。

查看代理日志

SSM 代理在下列文件中记录信息。这些文件中的信息可帮助您排查问题。

在 Windows 上

  • %PROGRAMDATA%\Amazon\SSM\Logs\amazon-ssm-agent.log

  • %PROGRAMDATA%\Amazon\SSM\Logs\error.log

在 Linux 上

  • /var/log/amazon/ssm/amazon-ssm-agent.log

  • /var/log/amazon/ssm/errors.log

在 Linux 上,您可通过更新 seelog.xml 文件来启用延长日志记录。默认情况下,配置文件位于以下位置:/opt/amazon/ssm/seelog.xml。

有关 cihub/seelog 配置的更多信息,请转到 cihub/seelog Wiki。有关 cihub/seelog 配置的示例,请转到 cihub/seelog 示例