配置 ActiveMQ 日志 - Amazon MQ
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

配置 ActiveMQ 日志

要允许 Amazon MQ 将日志发布到 CloudWatch Logs,您必须向您的 Amazon MQ 用户添加权限而且为 Amazon MQ 配置基于资源的策略然后再创建或重新启动代理。

下面介绍了为您的 ActiveMQ 代理程序配置 CloudWatch 日志的步骤。

了解 CloudWatch Logs 记录的结构

在创建代理或编辑代理时,您可以在配置高级代理设置时启用常规审核日志记录。

常规日志记录启用默认INFO日志记录级别 (DEBUG不支持日志记录)并发布activemq.log添加到您 CloudWatch 账户中的日志组。日志组的格式如下所示:

/aws/amazonmq/broker/b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9/general

审核日志记录用于记录使用 JMX 或使用 ActiveMQ Web 控制台执行的管理操作的日志并将发布audit.log添加到您 CloudWatch 账户中的日志组。日志组的格式如下所示:

/aws/amazonmq/broker/b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9/audit

根据您是否有单实例代理主动/备代理后,Amazon MQ 会在每个日志组中创建一个或两个日志流。日志流的格式如下所示。

activemq-b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.log activemq-b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-2.log

这些区域有:-1-2后缀表示单个代理实例。有关更多信息,请参阅 。使用日志组和日志流中的Amazon CloudWatch Logs 用户指南

将 CreateLogGroup 权限添加给 Amazon MQ 用户

要允许 Amazon MQ 创建 CloudWatch Logs 组,您必须确保创建或重启代理的 IAM 用户具有logs:CreateLogGroup权限。

重要

如果您没有添加CreateLogGroup权限,则 Amazon MQ 不会创建日志组。

以下示例基于 IAM 的策略授予的权限logs:CreateLogGroup对于此策略附加到的用户。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*" } ] }
注意

在这里,术语用户指的是IAM 用户而不是Amazon MQ 用户,它们是在配置新代理时创建的。有关设置 IAM 用户和配置 IAM 策略的更多信息,请参阅身份管理概述部分。

有关更多信息,请参阅 。CreateLogGroup中的Amazon CloudWatch Logs API 参考

为 Amazon MQ 配置基于资源的策略

重要

如果您没有为 Amazon MQ 配置基于资源的策略,则代理无法将日志发布到 CloudWatch Logs。

要允许 Amazon MQ 将日志发布到 CloudWatch Logs 组,请配置一个基于资源的策略来将 Amazon MQ 访问权授予以下 CloudWatch 日志 API 操作:

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

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

以下基于资源的策略将logs:CreateLogStreamlogs:PutLogEvents到Amazon。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mq.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*" } ] }

基于资源的策略必须通过使用AmazonCLI,如以下命令所示。在示例中,将us-east-1提供您自己的信息。

aws --region us-east-1 logs put-resource-policy --policy-name AmazonMQ-logs \ --policy-document "{\"Version\": \"2012-10-17\", \"Statement\":[{ \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"mq.amazonaws.com\" }, \"Action\": [\"logs:CreateLogStream\", \"logs:PutLogEvents\"], \"Resource\": \"arn:aws:logs:*:*:log-group:\/aws\/amazonmq\/*\" }]}"
注意

由于此示例使用 /aws/amazonmq/ 前缀,您只需为每个区域的每个 Amazon 账户配置一次基于资源的策略。

CloudWatch Logs 配置故障排除

在某些情况下,CloudWatch Logs 的行为可能并不总是符合预期。此部分概述了常见问题并说明如何解决这些问题。

CloudWatch 中没有显示日志组

将CreateLogGroup您的 Amazon MQ 用户的权限并重启代理。这样 Amazon MQ 就可以创建日志组了。

CloudWatch Logs 日志组中没有显示日志流

为 Amazon MQ 配置基于资源的策略。这样代理就可以发布其日志了。