如何对失败或卡在待处理状态的 State Manager 关联进行故障排除?

上次更新日期:2021 年 3 月 24 日

我创建了一个 State Manager 关联,计划在我的托管 Amazon Elastic Compute Cloud (Amazon EC2) 实例上运行。但是,关联状态失败或卡在待处理状态。该如何排查此问题?

解决方法

AWS Systems Manager State Manager 关联是分配给托管实例的配置。配置定义了希望在实例上维护的状态。

创建 State Manager 关联时,Systems Manager 会将您指定的计划、目标、文档和参数信息绑定到托管实例。关联状态最初为 pending (待处理),与此同时,系统会尝试到达所有目标并立即应用关联中指定的状态。

对卡在待处理/失败状态的关联进行故障排除

如果 State Manager 关联仍处于待处理或失败状态,请首先确认是否已安装最新版本的 SSM 代理

然后,验证应用关联的资源的状态,并查看历史记录以确认是否进行过任何调用。

  1. Systems Manager 控制台 State Manager 关联页面,选择处于待处理或失败状态的带超链接的关联 ID
  2. 选择 Execution history (执行历史) 选项卡,查看调用历史记录。
  3. 如果历史记录列出了调用,请选择带超链接的执行 ID,查看资源类型、状态和其他详细信息。然后,继续执行本文中确定失败的原因部分的操作。

如果历史记录中没有列出任何调用,请验证该实例是否为托管实例。在 Systems Manager 控制台中,实例必须位于 Managed instances (托管实例) 下,且 SSM Agent ping status (SSM 代理 ping 状态) 必须为 Online (在线)

如果您的实例没有位于 Managed instances (托管实例) 下,请参阅为什么我的 EC2 实例没有出现在 Systems Manager 控制台的托管实例下?

如果 SSM Agent ping status (SSM 代理 ping 状态) 显示为 Connection Lost (连接丢失),请参阅如何对处于连接丢失状态的 Systems Manager 托管实例进行故障排除?

确定失败原因

如果历史记录列出了调用,请从 Execution ID Association execution targets (执行 ID 关联执行目标)页面上,选择目标实例 Resource ID (资源 ID),然后选择 Output (输出)。输出将显示关联失败原因的详细信息和错误消息。

注意:输出因您使用的 Systems Manager 文档不同而有所不同。有关更多信息,请参阅 AWS Systems Manager 文档

查看 SSM 代理日志

查看 SSM Agent 日志,了解有关 Run Command 文档失败的更多详细信息:

对于 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

注意:SSM 代理 stderr 和 stdout 文件写入 /var/lib/amazon/ssm 目录。

对于 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

这篇文章对您有帮助吗?


您是否需要账单或技术支持?