本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
排除 Session Manager 的故障
可以使用以下信息来帮助解决 Amazon Systems Manager Session Manager 问题。
主题
Session Manager无法从亚马逊 EC2 控制台连接
问题: 创建新实例后,会话管理器亚马逊弹性计算云 (Amazon EC2) 控制台中的选项卡不提供连接选项。
解决方案 A:创建实例配置文件: 如果你还没有这样做(按照上面的信息所示)会话管理器选项卡(在 EC2 控制台中),创建一个Amazon Identity and Access Management使用的 (IAM) 实例配置文件Quick Setup。Quick Setup是一种能力Amazon Systems Manager。
Session Manager需要 IAM 实例配置文件才能连接到您的实例。您可以创建实例配置文件并通过创建将其分配给您的实例主机管理配置和Quick Setup。一个主机管理配置创建具有所需权限的实例配置文件并将其分配给您的实例。主机管理配置还启用其他 Systems Manager 功能,并创建用于运行这些功能的 IAM 角色。使用不收取任何费用Quick Setup或主机管理配置启用的功能。打开Quick Setup并创建主机管理配置
重要
创建主机管理配置后,Amazon EC2 可能需要几分钟来注册更改并刷新会话管理器选项卡。如果选项卡没有向你显示连接两三分钟后按钮,刷新浏览器。如果您仍然看不到连接选项,请打开快速设置
如果您在创建主机管理配置后仍然无法连接,或者收到错误,包括有关以下内容的错误SSM Agent,请参阅以下解决方案之一:
解决方案 B:没有错误,但仍然无法连接
如果您创建了主机管理配置,等待了几分钟才尝试连接,但仍然无法连接,则可能需要手动将主机管理配置应用到您的实例。使用以下步骤更新Quick Setup主机管理配置并将更改应用于实例。
要更新主机管理配置,请使用Quick Setup
访问 https://console.aws.amazon.com/systems-manager/
,打开 Amazon Systems Manager 控制台。 在导航窗格中,选择 Quick Setup。
-或者-
如果首先打开 Amazon Systems Manager 主页,选择菜单图标 (
) 以打开导航窗格,然后在导航窗格中选择 Quick Setup。
-
在配置列表,选择主机管理您创建的配置。
-
选择行动,然后选择编辑配置。
-
在目标部分,选择手册。
-
在实例部分,选择您创建的实例。
-
选择更新。
等待几分钟,让 EC2 刷新会话管理器选项卡。如果您仍然无法连接或收到错误,请查看此问题的其余解决方案。
解决方案 C:关于丢失的错误SSM Agent
如果您无法使用创建主机管理配置Quick Setup,或者你是否收到了关于以下内容的错误SSM Agent未安装,您可能需要手动安装SSM Agent在你的实例上。SSM Agent是 Amazon 软件,它允许系统管理器通过以下方式连接到您的实例Session Manager。SSM Agent默认情况下安装在大多数亚马逊系统映像 (AMI) 上。如果您的实例是从非标准 AMI 或较早的 AMI 创建的,则可能需要手动安装代理。用于安装程序SSM Agent,请参阅以下与您的实例操作系统对应的主题。
对于以下问题SSM Agent,参见排除 SSM Agent 的故障。
解决方案 D:权限错误
如果你收到一条错误提示你没有权限运行Quick Setup或者使用连接到实例Session Manager,请确认您拥有您的管理员权限Amazon Web Services 账户。如果你不知道,那就联系吧Amazon您的组织中的系统管理员并申请权限。
没有启动会话的权限
问题:您尝试启动会话,但系统提示您没有必要的权限。
-
解决方案:系统管理员尚未授予您启动 Session Manager 会话的 Amazon Identity and Access Management (IAM) 策略权限。有关信息,请参阅控制用户会话对实例的访问权限。
没有更改会话首选项的权限
问题:您尝试更新组织的全局会话首选项,但系统提示您没有必要的权限。
-
解决方案:系统管理员尚未授予您设置 Session Manager 首选项的 IAM policy 权限。有关信息,请参阅 授予或拒绝更新 Session Manager 首选项的用户权限。
托管式节点不可用或未为 Session Manager 配置托管式节点
问题 1:您要在 Start a session(启动会话)控制台页面上启动一个会话,但托管式节点不在列表中。
-
解决方案 A:可能尚未为 Amazon Systems Manager 配置您要连接的托管式节点。有关更多信息,请参阅设置 Amazon Systems Manager:
注意
如果在附加 IAM 实例配置文件时 Amazon Systems Manager SSM Agent 已在托管式节点上运行,则在 Start a session (启动会话)控制台页面上列出该实例之前,可能需要重新启动代理。
-
解决方案 B:您应用于托管式节点上 SSM Agent 的代理配置可能不正确。如果代理配置不正确,托管式节点将无法到达所需的服务终端节点,或节点可能会向 Systems Manager 报告为不同的操作系统。有关更多信息,请参阅 配置 SSM Agent 以使用代理(Linux) 和 配置 SSM Agent以使用 Windows Server 实例的代理。
问题 2:Start a session(开启会话)控制台页面上的列表中显示了要连接的托管式节点,但页面报告“The instance you selected isn't configured to use Session Manager”(您选择的实例未配置为使用 )。
-
解决方案 A:托管式节点已配置为可以使用 Systems Manager 服务,但附加到节点的 IAM 实例配置文件不包含 Session Manager 功能所需的权限。有关信息,请参阅验证或创建具有 Session Manager 权限的 IAM 实例配置文件。
-
解决方案 B:托管式节点未运行支持 Session Manager 的 SSM Agent 版本。将节点上的 SSM Agent 更新为版本 2.3.68.0 或更高版本。
根据操作系统类型,按照 在适用于 Windows Server 的 EC2 实例上手动安装 SSM Agent、在适用于 Linux 的 EC2 实例上手动安装 SSM Agent 或 在适用于 macOS 的 EC2 实例上使用 SSM Agent 中的步骤操作,手动更新托管式节点上的 SSM Agent。
或者,使用 Run Command 文档
AWS-UpdateSSMAgent
一次性更新一个或多个托管式节点上的代理版本。有关信息,请参阅 使用 Run Command 更新 SSM Agent。提示
为了让代理始终保持最新状态,建议使用以下方法之一按照定义的自动计划将 SSM Agent更新为最新版本:
-
作为 State Manager 关联的一部分运行
AWS-UpdateSSMAgent
。有关信息,请参阅 演练:自动更新 SSM Agent (CLI)。 -
运行
AWS-UpdateSSMAgent
作为维护时段的一部分。有关使用维护时段的信息,请参阅 使用维护时段(控制台) 和 教程:创建和配置维护时段 (Amazon CLI)。
-
-
解决方案 C:托管式节点无法到达必要的服务终端节点。您可以使用由 Amazon PrivateLink 提供支持的接口端点连接到 Systems Manager 端点,以提高托管式节点的安保状况。使用接口端点的替代方法是,在托管式节点上允许出站互联网访问。有关更多信息,请参见使用PrivateLink为设置 VPC 终端节点Session Manager。
-
解决方案 D:托管式节点的可用 CPU 或内存资源有限。尽管您的托管式节点可能正常运行,但是如果该节点没有足够的可用资源,则您无法建立会话。有关更多信息,请参阅对无法访问的实例进行故障排除。
未找到 Session Manager 插件
要使用 Amazon CLI 运行会话命令,还必须在本地计算机上安装 Session Manager 插件。有关信息,请参阅 安装Session Manager插件 Amazon CLI。
Session Manager插件未自动添加到命令行路径 (Windows)
当你安装时Session Manager插件开启Windows,那个session-manager-plugin
可执行文件应自动添加到您的操作系统中PATH
环境变量。如果在运行检查是否正确安装了 Session Manager 插件的命令后命令失败 (aws ssm start-session --target
),则需要使用以下过程进行手动设置。instance-id
修改您的 PATH 变量 (Windows)
-
按下Windows键入并输入
environment variables
。 -
选择 Edit environment variables for your account(编辑您账户的环境变量)。
-
选择 PATH,然后选择 Edit。
-
向 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\
-
-
选择 OK(确定)两次以应用新设置。
-
关闭任何运行的命令提示符并重新打开。
Session Manager 插件变得没有响应
如果您的本地计算机上安装了防病毒软件,在端口转发会话期间,可能会停止转发流量。在某些情况下,防病毒软件会干扰 Session Manager 插件,从而导致进程死锁。要解决此问题,请在防病毒软件中设置允许 Session Manager 插件或将其排除在外。有关 Session Manager 插件的默认安装路径的信息,请参阅 安装Session Manager插件 Amazon CLI。
TargetNotConnected
问题: 你尝试启动会话,但系统返回错误消息:“发生了错误 (TargetNotConnected) 在打电话时StartSession操作:实例 ID
未连接。”
-
解决方案 A:如果会话的指定目标托管式节点未完全配置为与 Session Manager 一起使用,则会返回此错误。有关信息,请参阅 设置 Session Manager。
-
解决方案 B:如果您尝试在位于不同 Amazon Web Services 账户 或 Amazon Web Services 区域 的托管式节点上启动会话,也会返回此错误。
启动会话后显示空白屏幕
问题:在您启动会话后,Session Manager 显示空白屏幕。
-
解决方案 A:如果托管式节点上的根卷已满,则可能出现此问题。由于磁盘空间不足,节点上的 SSM Agent 停止工作。要解决此问题,请使用亚马逊CloudWatch从操作系统收集指标和日志。有关信息,请参阅监控 Amazon EC2 Linux 实例的内存和磁盘指标或监控 Amazon EC2 Windows 实例的内存和磁盘指标。
-
解决方案 B:如果您使用包含不匹配端点和区域对的链接访问控制台,则会显示空白屏幕。例如,在以下控制台 URL 中,
us-west-2
是指定的端点,但us-west-1
是指定的 Amazon Web Services 区域。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 存储桶或亚马逊CloudWatch日志日志组,但是
s3
网关终端节点或logs
接口终端节点在 VPC 中不存在。如果您的托管式节点使用 VPC 终端节点连接到 Systems Manager,并且您的 Session Manager 首选项将会话输出写入 Amazon S3 存储桶,则需要格式为com.amazonaws.
的region
.s3s3
端点。或者,一个logs
端点格式为com.amazonaws.
如果您的托管节点使用 VPC 终端节点连接到 Systems Manager,则为必填项,而您的Session Manager首选项将会话输出写入CloudWatch日志日志组。有关更多信息,请参阅为 Systems Manager 创建 VPC 终端节点:region
.logs -
解决方案 D:您在会话首选项中指定的日志组或 Amazon S3 存储桶已删除。要解决此问题,请使用有效的日志组或 S3 存储桶更新会话首选项。
-
解决方案 E:您在会话首选项中指定的日志组或 Amazon S3 存储桶未加密,但您已将
cloudWatchEncryptionEnabled
或s3EncryptionEnabled
输入设置为true
。要解决此问题,请使用加密的日志组或 Amazon S3 存储桶更新会话首选项,或将cloudWatchEncryptionEnabled
或s3EncryptionEnabled
输入设置为false
。此方案仅适用于使用命令行工具创建会话首选项的客户。
托管式节点在长时间运行会话期间变得没有响应
问题:在长时间运行会话期间,托管式节点变得没有响应或崩溃。
解决方案:减少 Session Manager 的 SSM Agent 日志保留时间。
要减少会话的 SSM Agent 日志保留时间,请执行以下步骤:
-
找到
amazon-ssm-agent.json.template
在/etc/amazon/ssm/
的目录Linux,或C:\Program Files\Amazon\SSM
为了Windows。 -
将
amazon-ssm-agent.json.template
的内容复制到同一目录中名为amazon-ssm-agent.json
的新文件中。 -
减小
SSM
属性中SessionLogsRetentionDurationHours
值的默认值,然后保存该文件。 -
重启 SSM Agent。