配置消息日志
您可以使用云消息队列 RabbitMQ 版的日志管理功能将云消息队列 RabbitMQ 版实例的消息操作日志推送到日志服务。当消息的发送、消费、确认出现异常时,您可在日志服务查询并分析消息的操作日志,进行异常诊断。
前提条件
适用场景
云消息队列 RabbitMQ 版的消息日志管理功能适用于以下场景:
排查异常,例如消息成功发送,但消费端收不到消息。
查看消息的消费者或消费次数。
查看一个月前或者更久之前的消息操作日志。
注意事项
如果您删除Project、Logstore,或者将授予云消息队列 RabbitMQ 版的权限取消,日志将无法正常推送。
为方便查询消息日志,建议您在使用SDK收发消息时设置Message ID。具体操作,请参见如何设置Message ID。
每个云消息队列 RabbitMQ 版实例可以配置LoggingBucket,默认不配置。
云消息队列 RabbitMQ 版日志被推送到日志服务后,日志服务会根据存储空间、流量、请求数等进行收费。更多信息,请参见按使用功能计费模式计费项。
操作步骤
为云消息队列 RabbitMQ 版实例配置LoggingBucket,将日志推送到日志服务。
登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表。
在实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。
在左侧导航栏,单击消息日志管理。
可选:在RabbitMQ服务关联角色页面,单击授权。
如果您已授予云消息队列 RabbitMQ 版访问云资源权限,请跳过此步骤。
在消息日志管理页面,从Project 名称列表,选择已创建的Project,从Logstore 名称列表,选择已创建的Logstore,然后单击启用。
后续步骤
通过云消息队列 RabbitMQ 版SDK发送消息,并订阅消息。具体操作,请参见SDK概述。
查询消息。具体操作,请参见查询消息。
您可以登录日志服务控制台对日志进行查询与分析。具体操作,请参见查询和分析日志。
查询结果示例如下图所示。
参数
描述
Action
动作。 取值:
SendMessage:生产消息。
PushMessage:推送消息。
BasicAck:消息消费确认。
DeleteMessage:成功消费标记。
Code
状态码。 取值:
200:请求成功。
541:服务端内部错误。
503:无效的命令。
530:不允许的操作。
404:资源不存在。
406:预检查失败。
403:权限错误。
Info
请求成功时不显示,显示时为错误状态码信息。
InstanceId
云消息队列 RabbitMQ 版实例的ID。您可以在云消息队列 RabbitMQ 版控制台的实例详情页面或概览页面查看。
Queue
队列的名称。
RemoteAddress
Action为SendMessage时,为Producer客户端地址。
Action为PushMessage时为Consumer客户端地址:
Action为BasicAck时,为Consumer客户端地址。
Action为DeleteMessage时,为Consumer客户端地址。
ReqUid
如果您使用RAM用户收发消息,则为RAM用户ID。
如果您使用阿里云账号(主账号)收发消息,则为阿里云账号ID。
ResourceName
messageId:使用SDK发送消息时设置的Message ID。
exchange:Exchange名称。您可以在云消息队列 RabbitMQ 版控制台的Exchange管理页面查看。
routingKey:您在使用SDK发送消息时设置的Routing Key。
VHost
Vhost名称。您可以在云消息队列 RabbitMQ 版控制台的Vhost管理页面查看。
microtime
请求发生时间,单位:微秒。
_source_
该参数为日志服务SLS(Log Service)的保留字段。如果您想了解该字段的含义,请参见保留字段。
__tag__:__receive_time__
该参数为日志服务SLS的保留字段。如果您想了解该字段的含义,请参见保留字段。基于该字段具体如何统计消息的轨迹,请参见查询TPS统计图表。
__topic__
该参数为日志服务SLS的保留字段。如果您想了解该字段的含义,请参见保留字段。