如何对 Systems Manager Run Command 失败进行故障排除?

2 分钟阅读
0

当我使用 AWS Systems Manager Run Command 在托管的Amazon Elastic Compute Cloud(Amazon EC2)实例上运行命令时,该过程失败。

解决方法

先决条件

在使用 Run Command 管理 EC2 实例前,必须配置 AWS Identity and Access Management(IAM)用户策略。运行命令的任何用户都需要这一用户策略。要验证您的设置,请执行以下步骤:

  1. 验证 Systems Manager 的 IAM 实例配置文件角色是否已附加到您的 EC2 实例。有关详细信息,请参阅为 Systems Manager 配置实例权限
  2. 查看为角色或用户创建的 IAM 策略。该策略必须包含 ec2messages API 调用的权限,因为需要使用端点来发送和接收命令。

**注意:**当您配置默认主机管理配置时,Systems Manager 会自动管理没有 IAM 实例配置文件的 EC2 实例。所有关联的 EC2 实例必须使用实例元数据服务版本 2(IMDSv2)。默认主机管理配置在 AWS Systems Manager Agent(SSM Agent)版本 3.2.582.0 或更高版本中可用。在附加到 IAM 角色的策略中,设置 ec2messages API 调用权限,因为您需要使用端点来发送和接收命令。将 AWSSystemsManagerDefaultEC2InstanceManagementRole 配置为默认 IAM 角色。此角色包含通过 Systems Manager 来管理 EC2 实例所需的最低权限集。

对 Run Command 失败进行故障排除

在 Systems Manager 中,在 Fleet Manager 下,EC2 实例必须列在托管节点下方,而 SSM Agent ping 状态必须为在线。如果 Run Command 失败,请尝试以下故障排除方法:

查看 Run Command 状态详细信息

  1. 查看 Run Command 状态详细信息
  2. 打开 Systems Manager 控制台,然后从导航窗格中选择 Run Command
  3. 选择带超链接的命令 ID,以打开命令状态页面。
  4. 目标和输出部分中,选择带超链接的实例 ID,然后查看输出。

输出被截断后,请使用 SSH 连接到 EC2 实例,然后导航到以下目录,以查看完整的错误详细信息。记下退出状态代码,然后参阅对 Systems Manager Run Command 进行故障排除,了解其他故障排除步骤。

对于 LinuxmacOS

  • /var/lib/amazon/ssm/<instance-id>/document/orchestration/<command-id>/<Plugin-name>/<Step-name>/stdout
  • /var/lib/amazon/ssm/<instance-id>/document/orchestration/<command-id>/<Plugin-name>/<Step-name>/stderr

对于 Windows

  • %ProgramData%\Amazon\SSM\InstanceData\<ManagedInstance-ID>\document\orchestration\<Command-ID>\<plug-in>\<step_number.plug-in>\stdout
  • %ProgramData%\Amazon\SSM\InstanceData\<ManagedInstance-ID>\document\orchestration\<Command-ID>\<plug-in>\<step_number.plug-in>\stderr

查看 SSM Agent 日志

查看 SSM Agent 日志,了解有关失败的更多详细信息。

对于 LinuxmacOS,请在以下目录中找到日志:

  • /var/log/amazon/ssm/amazon-ssm-agent.log
  • /var/log/amazon/ssm/errors.log
  • /var/log/amazon/ssm/audits/amazon-ssm-agent-audit-YYYY-MM-DD

对于 Windows,请在以下目录中找到日志:

  • %PROGRAMDATA%\Amazon\SSM\Logs\amazon-ssm-agent.log
  • %PROGRAMDATA%\Amazon\SSM\Logs\errors.log
  • %PROGRAMDATA%\Amazon\SSM\Logs\audits\amazon-ssm-agent-audit-YYYY-MM-DD

如果 SSM Agent 日志未提供解决错误所需的信息,则允许调试日志记录来重现问题。

相关信息

AWS Systems Manager 文档

设置 AWS Systems Manager

AWS 官方
AWS 官方已更新 1 年前