如何解决 Systems Manager Run Command 超时问题?

1 分钟阅读
0

我使用 AWS System Manager Run Command 在我的托管 Amazon Elastic Compute Cloud(Amazon EC2)实例上运行 SSM 文档。但是,该过程因超时错误而失败。

简短描述

Run Command 超时状态详细信息包括以下内容:

  • **执行超时:**命令在被视为失败之前完成的时间(以秒为单位)。默认值为 3600(1 小时)。最大值为 172800(48 小时)。
  • **传送超时:**在总超时到期之前,命令未传送到托管节点。
  • **总超时:**传送超时加上执行超时的值。如果 SSM 文档不要求执行超时,则总超时等于传送超时加上默认执行超时。

有关详细信息,请参阅了解命令状态

解决方法

查看 Run Command 状态详细信息

  1. 打开 Systems Manager 控制台
  2. 在导航窗格中,选择 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 日志未提供解决错误所需的信息,则允许调试日志记录来重现问题。

解决超时问题

  • 确保您的 Run Command SSM 文档的总完成时间小于 timeoutSeconds 属性,并验证完成它们所需的总时间是否小于 timeoutSeconds 参数。默认 timeoutSeconds 属性值为 3600 秒(1 小时)。有关指定 timeoutSeconds 属性值的详细信息,请参阅处理运行手册中的超时
  • EC2 实例必须显示为托管节点,并且 SSM Agent ping 状态必须为联机。如果您的 EC2 实例未显示为托管节点或 SSM Agent ping 状态不是联机,则需要进行额外故障排除。有关详细信息,请参阅为什么我的 EC2 实例未显示为托管节点,或在 Systems Manager 中显示“连接丢失”状态?
  • 如果您的 Run Command 正在运行重启托管节点的脚本,则该节点可能会断开连接,从而导致超时问题。确保您使用了正确的退出代码。有关详细信息,请参阅处理运行命令时的重启
  • 如果您的 SSM Agent 版本为 2.0.913 或更高版本,则最大执行超时值为 172800 秒(48 小时)。验证该实例是否使用了最新版本的 SSM Agent
  • 当 Maintenance Window 或状态管理器运行命令时,确认命令正在运行。要进行确认,请使用 AWS CloudTrail 查看 SendCommand 响应。

相关信息

AWS Systems Manager 文档

设置 AWS Systems Manager

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

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