日志管理功能能够将云消息队列 RabbitMQ 版实例的消息操作日志自动推送至您的日志服务的LogStore。当消息发送、消费或确认过程中出现异常时,您可以在日志服务查询并分析消息的操作日志,进行异常诊断。
前提条件
创建云消息队列 RabbitMQ 版实例。具体操作,请参见实例管理。
开通日志服务并创建Project和Logstore。具体操作,请参见资源管理概述。
根据控制台提示创建RabbitMQ服务关联角色
AliyunServiceRoleForAmqpLogDelivery
并授权,用于将日志推送到您的日志服务中。
如果您删除Project、Logstore,或者将授予云消息队列 RabbitMQ 版的权限取消,日志将无法正常推送。
计费说明
云消息队列 RabbitMQ 版
使用日志管理功能时,云消息队列 RabbitMQ 版不收取费用。
日志服务
云消息队列 RabbitMQ 版日志被推送到日志服务后,日志服务会根据存储空间、流量、请求数等进行收费。更多信息,请参见按使用功能计费模式计费项。
日志格式
日志格式说明
参数 | 描述 |
Action | 操作对应的请求方法。取值和描述请参见Action请求方法。 |
Code | 状态码。 取值如下:
|
Info | 请求成功时不显示,显示时表示错误状态码信息。 |
InstanceId | 云消息队列 RabbitMQ 版实例的ID。您可以在云消息队列 RabbitMQ 版控制台的实例详情页面或概览页面查看。 |
Queue | 订阅或者消息对应的Queue。
|
Property | 消息的属性。取值和描述如下:
|
RemoteAddress | 发起该操作的客户端地址。
说明 Action为SendDlqMessage时,不记录该字段。 |
ReqUid | 账号ID。
说明 Action为SendDlqMessage时,不记录该字段。 |
ResourceName | 资源名称。
说明 Action为ConnectionOpen、ConnectionClose、ChannelOpen或ChannelClose时,不记录该字段。 |
VHost | Vhost名称。您可以在云消息队列 RabbitMQ 版控制台的Vhost管理页面查看。 |
ConnectionId | 服务端用于唯一标识Connection。 说明 Action为SendDlqMessage时,不记录该字段。 |
ChannelId | 客户端生成的Channel ID,用于标识当前Connection下的唯一Channel。 说明 Action为ConnectionOpen和ConnectionClose时,为null。 |
microtime | 请求发生时间,单位:微秒。 |
_source_ | 该参数为日志服务SLS(Log Service)的保留字段。如果您想了解该字段的含义,请参见保留字段。 |
__tag__:__receive_time__ | 该参数为日志服务SLS的保留字段。如果您想了解该字段的含义,请参见保留字段。 |
__topic__ | 该参数为日志服务SLS的保留字段。如果您想了解该字段的含义,请参见保留字段。 |
Action请求方法
请求方法 | 说明 |
ConnectionOpen | 开启连接。 |
ConnectionClose | 关闭连接。 |
ChannelOpen | 开启Channel。 |
ChannelClose | 关闭Channel。 |
QueueDeclare | 创建Queue。 |
QueueDelete | 删除Queue。 |
ExchangeDeclare | 创建Exchange。 |
ExchangeDelete | 删除Exchange。 |
ExchangeBind | 绑定路由到Exchange。 |
ExchangeUnBind | 解除源Exchange到目标Exchange的绑定。 |
QueueBind | 绑定路由到Queue。 |
QueueUnbind | 解除源Exchange到目标Queue的 |
SendMessage | 生产者生产消息。 |
PushMessage | 服务端推送消息。 |
BasicGet | 客户端拉取消息。 |
BasicAck | ACK消息。 |
BasicConsume | 订阅Queue。 |
BasicReject | Reject消息。 |
BasicRecover | Recover消息。 |
BasicNack | Nack消息。 |
BasicQos | 设置Consumer的流控。 |
QueuePurge | 清空Queue中所有消息。 |
DeleteMessage | 客户端调用BasicAck,服务端确认消息被成功删除。 |
SendDlqMessage | 发送死信消息。 |
操作步骤
为云消息队列 RabbitMQ 版实例配置LoggingBucket,将日志推送到日志服务。
登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表。
在实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。
在左侧导航栏,单击日志管理。
可选:在RabbitMQ服务关联角色页面,单击授权。
如果您已授予云消息队列 RabbitMQ 版访问日志服务权限,请跳过此步骤。
在日志管理页面,从Project 名称列表,选择已创建的Project,从Logstore 名称列表,选择已创建的Logstore,然后单击启用。
在索引字段中手动添加
__tag__:__receive_time__
字段,并设置别名为timestamp,如下图所示。