日志管理
日志管理功能能够将云消息队列 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 版访问日志服务权限,则无需操作。 
- 在日志管理页面,从Project 名称列表,选择已创建的Project,从Logstore 名称列表,选择已创建的Logstore,然后单击启用。 
- 在索引字段中手动添加 - __tag__:__receive_time__字段,并设置别名为timestamp,如下图所示。