故障排除 Session Manager - AWS Systems Manager

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

故障排除 Session Manager

可以使用以下信息来帮助解决 AWS Systems Manager Session Manager 问题。

Session Manager 无法从 Amazon EC2 控制台连接

问题:创建新实例后,Amazon Elastic Compute Cloud(Amazon EC2)控制台中的会话管理器选项卡不提供连接选项。

解决方案 A:创建实例配置文件:如果您尚未这样做(按照 EC2 控制台中 “会话管理器” 选项卡上的信息所示),请使用创建 AWS Identity and Access Management (IAM) 实例配置文件Quick Setup。 Quick Setup的能力是 AWS Systems Manager。

Session Manager 需要 IAM 实例配置文件才能连接到实例。您可以使用 Quick Setup 创建主机管理配置,以创建实例配置文件并将其分配给实例。主机管理配置创建具有所需权限的实例配置文件并将其分配给实例。主机管理配置还可以启用其他 Systems Manager 功能,并创建用于运行这些功能的 IAM 角色。使用 Quick Setup 或主机管理配置启用的功能不会产生任何费用。打开 Quick Setup 并创建主机管理配置

重要

创建主机管理配置后,Amazon EC2 可能需要几分钟来注册更改并刷新 会话管理器选项卡。如果选项卡在两分钟后没有显示 Connect 按钮,请重启您的实例。重新启动后,如果您仍然看不到连接选项,请打开快速设置并确认只有一个主机管理配置。如果有两个主机管理配置,请删除较旧的配置并等待几分钟。

如果在创建主机管理配置后仍然无法连接,或者收到错误(包括关于 SSM Agent 的错误),请参阅以下解决方案之一:

解决方案 B:没有错误,但仍然无法连接

如果您创建了主机管理配置,等待了几分钟才尝试连接,但仍然无法连接,则可能需要手动将主机管理配置应用于实例。使用以下过程更新 Quick Setup 主机管理配置并将更改应用于实例。

使用 Quick Setup 更新主机管理配置
  1. 打开 AWS Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择 Quick Setup

    -或者-

    如果首先打开 AWS Systems Manager 主页,请选择菜单图标 ( 
    The menu icon
  ) 以打开导航窗格,然后在导航窗格Quick Setup中进行选择。

  3. 配置列表中,选择您创建的主机管理配置

  4. 选择操作,然后选择编辑配置

  5. 目标部分中,选择手动

  6. 实例部分中,选择您创建的实例。

  7. 选择更新

等待几分钟,让 EC2 刷新会话管理器选项卡。如果仍然无法连接或收到错误,请查看该问题的其余解决方案。

解决方案 C:关于缺失 SSM Agent 的错误

如果您无法使用 Quick Setup 创建主机管理配置,或者收到有关未安装 SSM Agent 的错误,则可能需要在实例上手动安装 SSM Agent。SSM Agent 是 Amazon 软件,它允许 Systems Manager 通过使用 Session Manager 连接到实例。SSM Agent 默认安装在大多数亚马逊机器映像(AMI)上。如果您的实例是从非标准 AMI 或较旧的 AMI 创建的,则可能需要手动安装代理。有关安装 SSM Agent 的过程,请参阅以下与您的实例操作系统相对应的主题。

有关 SSM Agent 的问题,请参阅 故障排除 SSM Agent

没有启动会话的权限

问题:您尝试启动会话,但系统提示您没有必要的权限。

没有更改会话首选项的权限

问题:您尝试更新组织的全局会话首选项,但系统提示您没有必要的权限。

托管式节点不可用或未为 Session Manager 配置托管式节点

问题 1:您要在 Start a session(启动会话)控制台页面上启动一个会话,但托管式节点不在列表中。

  • 解决方案 A:可能尚未为要连接的托管节点进行配置 AWS Systems Manager。有关更多信息,请参阅 设置 AWS Systems Manager

    注意

    如果您 AWS Systems Manager SSM Agent在附加 IAM 实例配置文件时已在托管节点上运行,则可能需要在启动会话控制台页面上列出该实例之前重新启动代理。

  • 解决方案 B:您应用于托管式节点上 SSM Agent 的代理配置可能不正确。如果代理配置不正确,托管式节点将无法到达所需的服务终端节点,或节点可能会向 Systems Manager 报告为不同的操作系统。有关更多信息,请参阅 配置 SSM Agent 以使用代理(Linux)配置 SSM Agent以使用 Windows Server 实例的代理

问题 2Start a session(开启会话)控制台页面上的列表中显示了要连接的托管式节点,但页面报告“The instance you selected isn't configured to use Session Manager”(您选择的实例未配置为使用 )。

未找到 Session Manager 插件

要使用运行会话命令,还必须将Session Manager插件安装在本地计算机上。 AWS CLI 有关信息,请参阅 安装Session Manager插件 AWS CLI

Session Manager 插件未自动添加到命令行路径(Windows)

在 Windows 上安装 Session Manager 插件时,session-manager-plugin 可执行文件应自动添加到操作系统的 PATH 环境变量中。如果在运行检查是否正确安装了 Session Manager 插件的命令后命令失败 (aws ssm start-session --target instance-id),则需要使用以下过程进行手动设置。

修改您的 PATH 变量 (Windows)
  1. 按 Windows 键并输入 environment variables

  2. 选择 Edit environment variables for your account(编辑您账户的环境变量)。

  3. 选择 PATH,然后选择 Edit

  4. Variable value (变量值) 字段添加路径,用分号分隔,如下例所示:C:\existing\path;C:\new\path

    C:\existing\path 表示字段中已存在的值。C:\new\path 表示要添加的路径,如以下示例所示。

    • 64 位计算机C:\Program Files\Amazon\SessionManagerPlugin\bin\

    • 32 位计算机C:\Program Files (x86)\Amazon\SessionManagerPlugin\bin\

  5. 选择 OK(确定)两次以应用新设置。

  6. 关闭任何运行的命令提示符并重新打开。

Session Manager 插件变得没有响应

如果您的本地计算机上安装了防病毒软件,在端口转发会话期间,可能会停止转发流量。在某些情况下,防病毒软件会干扰 Session Manager 插件,从而导致进程死锁。要解决此问题,请在防病毒软件中设置允许 Session Manager 插件或将其排除在外。有关 Session Manager 插件的默认安装路径的信息,请参阅 安装Session Manager插件 AWS CLI

TargetNotConnected

问题:您尝试启动会话,但系统返回错误消息:“调用 StartSession 操作时出现错误 (TargetNotConnected):InstanceID 未连接。”

  • 解决方案 A:如果会话的指定目标托管式节点未完全配置为与 Session Manager 一起使用,则会返回此错误。有关信息,请参阅 设置 Session Manager

  • 解决方案 B:如果您尝试在位于不同 AWS 账户 或的托管节点上启动会话,也会返回此错误 AWS 区域。

启动会话后显示空白屏幕

问题:在您启动会话后,Session Manager 显示空白屏幕。

  • 解决方案 A:如果托管式节点上的根卷已满,则可能出现此问题。由于磁盘空间不足,节点上的 SSM Agent 停止工作。要解决此问题,请使用 Amazon CloudWatch 从操作系统收集指标和日志。有关信息,请参阅监控 Amazon EC2 Linux 实例的内存和磁盘指标监控 Amazon EC2 Windows 实例的内存和磁盘指标

  • 解决方案 B:如果您使用包含不匹配端点和区域对的链接访问控制台,则会显示空白屏幕。例如,在以下控制台 URL 中,us-west-2 是指定的端点,但 us-west-1 是指定的 AWS 区域。

    https://us-west-2.console.aws.amazon.com/systems-manager/session-manager/sessions?region=us-west-1
  • 解决方案 C:托管节点使用 VPC 终端节点连接到 Systems Manager,您的Session Manager首选项将会话输出写入 Amazon S3 存储桶或 Amazon Log CloudWatch s 日志组,但是 VPC 中不存在s3网关终端节点或logs接口终端节点。如果您的托管式节点使用 VPC 终端节点连接到 Systems Manager,并且您的 Session Manager 首选项将会话输出写入 Amazon S3 存储桶,则需要格式为 com.amazonaws.region.s3s3 端点。或者,如果您的托管节点使用 VPC logs 终端节点连接到 Systems Manager,并且您的Session Manager首选项将会话输出写入 CloudWatch 日志组,则需要格式com.amazonaws.region.logs为的终端节点。有关更多信息,请参阅 为 Systems Manager 创建 VPC 终端节点

  • 解决方案 D:您在会话首选项中指定的日志组或 Amazon S3 存储桶已删除。要解决此问题,请使用有效的日志组或 S3 存储桶更新会话首选项。

  • 解决方案 E:您在会话首选项中指定的日志组或 Amazon S3 存储桶未加密,但您已将 cloudWatchEncryptionEnableds3EncryptionEnabled 输入设置为 true。要解决此问题,请使用加密的日志组或 Amazon S3 存储桶更新会话首选项,或将 cloudWatchEncryptionEnableds3EncryptionEnabled 输入设置为 false。此方案仅适用于使用命令行工具创建会话首选项的客户。

托管式节点在长时间运行会话期间变得没有响应

问题:在长时间运行会话期间,托管式节点变得没有响应或崩溃。

解决方案:减少 Session Manager 的 SSM Agent 日志保留时间。

要减少会话的 SSM Agent 日志保留时间,请执行以下步骤:
  1. 在 Linux 的 /etc/amazon/ssm/ 目录或 Windows 的 C:\Program Files\Amazon\SSM 中找到 amazon-ssm-agent.json.template

  2. amazon-ssm-agent.json.template 的内容复制到同一目录中名为 amazon-ssm-agent.json 的新文件中。

  3. 减小 SSM 属性中 SessionLogsRetentionDurationHours 值的默认值,然后保存该文件。

  4. 重启 SSM Agent。

调用 StartSession 操作时出错 (InvalidDocument)

问题:使用 AWS CLI启动会话时,您会收到以下错误。

An error occurred (InvalidDocument) when calling the StartSession operation: Document type: 'Command' is not supported. Only type: 'Session' is supported for Session Manager.

解决方案:您为 --document-name 参数指定的 SSM 文档不是会话文档。请按照以下过程在 AWS Management Console中查看会话文档列表。

查看会话文档列表
  1. 打开 AWS Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择文档

  3. 类别列表中,选择会话文档