日志管理

更新时间:

日志管理功能能够将云消息队列 RabbitMQ 版实例的消息操作日志自动推送至您的日志服务的LogStore。当消息发送、消费或确认过程中出现异常时,您可以在日志服务查询并分析消息的操作日志,进行异常诊断。

前提条件

  • 创建云消息队列 RabbitMQ 版实例。具体操作,请参见实例管理

  • 开通日志服务并创建Project和Logstore。具体操作,请参见资源管理概述

  • 根据控制台提示创建RabbitMQ服务关联角色AliyunServiceRoleForAmqpLogDelivery并授权,用于将日志推送到您的日志服务中。

重要

如果您删除Project、Logstore,或者将授予云消息队列 RabbitMQ 版的权限取消,日志将无法正常推送。

计费说明

  • 云消息队列 RabbitMQ 版

    使用日志管理功能时,云消息队列 RabbitMQ 版不收取费用。

  • 日志服务

    云消息队列 RabbitMQ 版日志被推送到日志服务后,日志服务会根据存储空间、流量、请求数等进行收费。更多信息,请参见按使用功能计费模式计费项

日志格式

日志格式说明

参数

描述

Action

操作对应的请求方法。取值和描述请参见Action请求方法

Code

状态码。 取值如下:

  • 200:请求成功。

  • 541:服务端内部错误。

  • 503:无效的命令。

  • 530:不允许的操作。

  • 404:资源不存在。

  • 406:预检查失败。

  • 403:权限错误。

Info

请求成功时不显示,显示时表示错误状态码信息。

InstanceId

云消息队列 RabbitMQ 版实例的ID。您可以在云消息队列 RabbitMQ 版控制台的实例详情页面或概览页面查看。

Queue

订阅或者消息对应的Queue。

  • Action为PushMessage、BasicGet和DeleteMessage时,为订阅的Queue。

  • Action为BasicReject时,为被拒绝的消息对应的Queue。

  • Action为BasicNack时,为Nack消息对应的Queue。

Property

消息的属性。取值和描述如下:

  • consumerTag:用于标识Queue的订阅者。

  • deliveryTag:服务端标识某个Channel上的唯一消息。

    说明

    Action为PushMessage、BasicGet、DeleteMessage或SendDlqMessage时,记录该字段。

RemoteAddress

发起该操作的客户端地址。

  • Action为SendMessage时,为Producer客户端地址。

  • Action为PushMessage时为Consumer客户端地址:

  • Action为BasicAck时,为Consumer客户端地址。

  • Action为DeleteMessage时,为Consumer客户端地址。

说明

Action为SendDlqMessage时,不记录该字段。

ReqUid

账号ID。

  • 如果您使用RAM用户收发消息,则为RAM用户ID。

  • 如果您使用阿里云账号(主账号)收发消息,则为阿里云账号ID。

说明

Action为SendDlqMessage时,不记录该字段。

ResourceName

资源名称。

  • messageId:使用SDK发送消息时设置的Message ID。

  • exchange:Exchange名称。您可以在云消息队列 RabbitMQ 版控制台的Exchange管理页面查看。

  • routingKey:您在使用SDK发送消息时设置的Routing Key。

说明

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的x0005绑定。

SendMessage

生产者生产消息。

PushMessage

服务端推送消息。

BasicGet

客户端拉取消息。

BasicAck

ACK消息。

BasicConsume

订阅Queue。

BasicReject

Reject消息。

BasicRecover

Recover消息。

BasicNack

Nack消息。

BasicQos

设置Consumer的流控。

QueuePurge

清空Queue中所有消息。

DeleteMessage

客户端调用BasicAck,服务端确认消息被成功删除。

SendDlqMessage

发送死信消息。

操作步骤

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

  1. 登录云消息队列 RabbitMQ 版控制台,然后在左侧导航栏选择实例列表

  2. 实例列表页面的顶部菜单栏选择地域,然后在实例列表中,单击目标实例名称。

  3. 在左侧导航栏,单击日志管理

  4. 可选:RabbitMQ服务关联角色页面,单击授权

    如果您已授予云消息队列 RabbitMQ 版访问日志服务权限,请跳过此步骤。

  5. 日志管理页面,从Project 名称列表,选择已创建的Project,从Logstore 名称列表,选择已创建的Logstore,然后单击启用

  6. 登录日志服务控制台,开启日志索引并配置日志字段索引。具体操作请参见创建索引

  7. 在索引字段中手动添加__tag__:__receive_time__字段,并设置别名为timestamp,如下图所示。image

实践教程