ActiveMQ 版 Amazon MQ 疑难解答 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

ActiveMQ 版 Amazon MQ 疑难解答

使用本节中的信息帮助您诊断和解决在使用 Amazon MQ for ActiveMQ 代理时可能遇到的常见问题。

尽管我已经激活了日志记录,但我也无法在 CloudWatch 日志中看到我的经纪人的常规日志或审计日志。

如果您无法在 Logs 中查看经纪人的 CloudWatch 日志,请执行以下操作。

  1. 检查创建或重启代理程序的用户是否具有 logs:CreateLogGroup 权限。如果您未在用户创建或重启代理之前将 CreateLogGroup 权限添加给该用户,则 Amazon MQ 不会创建日志组。

  2. 检查您是否已将基于资源的策略配置为允许 Amazon MQ 将日志发布到日志 CloudWatch 。要允许 Amazon MQ 将日志发布到您的 CloudWatch 日志日志组,请配置基于资源的策略以授予 Amazon MQ 访问以下日志操作的权限: CloudWatch API

    • CreateLogStream— 为指定的 CloudWatch 日志组创建日志日志流。

    • PutLogEvents— 将事件传送到指定的 CloudWatch 日志日志流。

有关配置 Amazon MQ for ActiveMQ 以将日志发布到日志的更多信息,请参阅配置日志。 CloudWatch

代理重启或维护时段后,即使状态为 RUNNING,我也无法连接到我的代理。为什么?

您可能会在您启动的代理重启后、计划的维护时段完成后或在故障事件中遇到连接问题,此时备用实例会激活。无论哪种情况,代理重启后的连接问题很可能是由于您的经纪商的 Amazon EFS 或 Amazon EBS 存储卷中存在异常大量的消息造成的。在重启期间,Amazon MQ 会将储存的消息从存储移动到代理内存。要确认此诊断,您可以监控 CloudWatch 适用于 ActiveMQ 的 Amazon MQ 经纪商的以下指标:

  • StoragePercentUsage - 达到或接近 100% 的大百分比会导致代理拒绝连接。

  • JournalFilesForFullRecovery - 表示在不正常关闭和重启后将重播的日志文件数。值增加或持续高于 1 表示存在未解决的事务,可能会在重启后导致连接问题。

  • OpenTransactionCount - 重启后的数字大于零表示代理将尝试存储以前使用的消息,从而导致连接问题。

要解决此问题,我们建议您使用 rollback()commit() 来解决 XA 事务。有关更多信息,以及要查看使用 rollback() 解决 XA 事务的代码示例,请参阅恢复 XA 事务

我看到我的一些客户端可以连接到代理,而其他客户端则无法连接。

如果您的代理处于 RUNNING 状态并且一些客户端能够成功连接到代理,而其他客户端无法连接,您可能已经达到了代理的线级连接数限制。要验证您是否已达到线级连接数限制,请执行以下操作:

  • 在 “日志” 中查看您的 Amazon MQ for ActiveMQ 代理的通用经纪商日志。 CloudWatch 如果已达到限制,您会在代理日志中看到 Reached Maximum Connections。有关适用于 ActiveMQ 代理的 Amazon MQ CloudWatch 日志的更多信息,请参阅。了解 CloudWatch 日志中登录的结构

一旦达到线级连接数限制,代理将主动拒绝额外的传入连接。要解决此问题,我们建议升级您的代理实例类型。有关为工作负载选择最佳实例类型的更多信息,请参阅Broker instance types

如果您确认线级连接数低于代理的连接数限制,则问题可能与重新启动客户端有关。检查您的代理日志,查找大量且重复出现的 ... Inactive for longer than 600000 ms - removing ... 条目。日志条目能够表明客户端重启或连接问题。当客户端通过 Network Load Balancer (NLB) 连接到代理时,这种影响更为明显,而客户端经常断开连接并重新连接到代理。这在基于容器的客户端中更为常见。

请检查客户端日志,了解更多详细信息。代理将在 600000 毫秒后清理不活跃的TCP连接,并释放连接套接字。

我在执行操作时,在 ActiveMQ 控制台上看到 org.apache.jasper.JasperException: An exception occurred processing JSP page 异常。

如果您使用的是简单身份验证并配置AuthorizationPlugin队列和主题授权,请确保使用XML配置文件中的AuthorizationEntries元素,并允许activemq-webconsole群组拥有所有队列和主题的权限。这可以确保 ActiveMQ Web 控制台能够与 ActiveMQ 代理进行通信。

以下示例 AuthorizationEntry 将所有队列和主题的读取和写入权限授予 activemq-webconsole 群组。

<authorizationEntries> <authorizationEntry admin="activemq-webconsole,admins,users" topic=">" read="activemq-webconsole,admins,users" write="activemq-webconsole,admins,users" /> <authorizationEntry admin="activemq-webconsole,admins,users" queue=">" read="activemq-webconsole,admins,users" write="activemq-webconsole,admins,users" /> </authorizationEntries>

同样,在将您的经纪人与之集成时LDAP,请务必为该amazonmq-console-admins群组授予权限。有关LDAP集成的更多信息,请参阅LDAP整合的工作原理