您可以使用消息队列RabbitMQ版的日志管理功能将消息队列RabbitMQ版实例的消息操作日志推送到日志服务。当消息的发送、消费、确认出现异常时,您可以通过Message ID查询消息操作日志,从而进行异常诊断。

前提条件

在将消息队列RabbitMQ版实例的消息操作日志推送到日志服务前,请确保您已完成以下操作:

适用场景

消息队列RabbitMQ版的消息日志管理功能适用于以下场景:
  • 排查异常,例如消息成功发送,但消费端收不到消息。
  • 查看消息的消费者或消费次数。
  • 查看一个月前或者更久之前的消息操作日志。

注意事项

  • 如果您删除Project、LogStore,或者将授予消息队列RabbitMQ版的权限取消 ,日志将无法正常推送。
  • 为方便查询消息日志,建议您在使用SDK收发消息时设置Message ID。详情请参见设置Message ID
  • 每个消息队列RabbitMQ版实例可以配置LoggingBucket,默认不配置。
  • 消息队列RabbitMQ版日志被推送到日志服务后,日志服务会根据存储空间、流量、请求数等进行收费。详情请参见计费概述

操作步骤

消息队列RabbitMQ版实例配置LoggingBucket,将日志推送到日志服务。

  1. 登录消息队列RabbitMQ版控制台
  2. 在顶部菜单栏,选择地域。
  3. 在左侧导航栏,单击消息日志管理
  4. 可选:云资源访问授权页面,单击同意授权
    如果您已授予消息队列RabbitMQ版访问云资源权限,请跳过此步骤。
    pg_access
  5. 消息日志管理页面,选择实例,在其右侧操作列,单击配置
  6. 配置对话框,从Project名称列表,选择已创建的Project,从LogStore名称列表,选择已创建的LogStore,然后单击确定

后续步骤

消息队列RabbitMQ版实例的消息操作日志推送到日志服务后,您可以对日志进行查询与分析。详情请参见查询分析日志

查询结果示例如下:

log_result
参数 描述
Action 动作。 取值:
  • MessagePublish:消息发布。
  • MessageAck:消息确认。
  • MessageReceived:消息消费。
Code 状态码。 取值:
  • 200:请求成功。
  • 541:服务端内部错误。
  • 503:无效的命令。
  • 530:不允许的操作。
  • 404:资源不存在。
  • 406:预检查失败。
  • 403:权限错误。
Exchange Exchange名称。您可以在消息队列RabbitMQ版控制台的Exchange管理页面查看。
Info 请求成功时为空,否则为错误状态码信息。
InstanceId 消息队列RabbitMQ版实例的ID。您可以在消息队列RabbitMQ版控制台的实例详情页面或概览页面查看。
MessageId 使用SDK发送消息时设置的Message ID。
OwnerUid 阿里云账号(主账号) ID。您可以在阿里云账号管理控制台获取。
Queues 由Queue名称和系统自动生成的唯一消息ID组成,以 “|” 符号分隔。如果动作为MessageAck,则仅为系统自动生成的唯一消息ID。
RemoteAddress
  • ActionMessagePublish时,为Producer客户端地址。
  • ActionMessageAck时,为Consumer客户端地址。
  • ActionMessageReceived时,Consumer客户端地址。
ReqUid
  • 如果您使用RAM用户收发消息,则为RAM用户ID。
  • 如果您使用阿里云账号(主账号)收发消息,则为阿里云账号ID。
Routingkey 您在使用SDK发送消息时设置的Routing Key。
VHost Vhost名称。您可以在消息队列RabbitMQ版控制台的Vhost管理页面查看。
_source_ 该参数用于消息队列RabbitMQ版服务团队内部,您无需关心。
__tag__:__receive_time__ 该参数用于消息队列RabbitMQ版服务团队内部,您无需关心。
__topic__ 该参数用于消息队列RabbitMQ版服务团队内部,您无需关心。