消息队列 RabbitMQ版支持 rabbitmq_tracing 插件,追踪流入流出 RabbitMQ 的消息,并保存记录消息的日志文件,用于问题排查、功能调试等场景。
在消息中间件的使用场景中,往往会出现消息异常丢失的现象,例如消息生产者成功发送消息,消费者却未消费消息。消息丢失的现象有多种可能因素,例如编码导致的逻辑错误、网络连接问题等,在这种场景下需要一种消息追踪的机制,用于定位消息失踪的具体原因,便于异常场景下的功能调试与问题排查。
消息队列 RabbitMQ版通过 rabbitmq_tracing 插件提供消息追踪功能,开启插件并添加 Trace 后,后台会自动创建一个 Exchange,每个队列会自动绑定该 Exchange,绑定后发送到这些队列的消息都会记录到 Trace 日志。查看 Trace 文件即可查看指定消息的跟踪信息。
说明
已创建实例,并为实例开启了 rabbitmq_tracing 插件。详细操作步骤请参考开启插件。
登录 RabbitMQ WebUI 页面。
操作步骤请参考 连接 RabbitMQ 管理地址 。
添加 trace。
在顶部导航栏单击 Admin。
在 Admin 页签的右侧导航栏单击 Tracing。
在 Tracing 页面的 Add a new trace 区域输入相关参数。
参数说明如下:
参数 | 说明 |
---|---|
Name | 新 trace 的名称。该名称用于区分不同的 trace。 |
Format | 输出的消息日志格式。支持以下格式:
|
Tracer connection username | 创建 trace 的用户名。此处应指定为 WebUI 管理员用户的用户名,您可以在实例的实例信息页面查看。详细操作请参考查看实例信息。 |
Tracer connection password | 创建 trace 的用户密码。此处应指定为 WebUI 管理员用户的用户密码,如果忘记密码,可以在实例的实例信息页面重置密码。详细操作请参考重置管理员用户密码。 |
Max payload bytes | trace 文件 payload 字段的最大限制,超限后 payload 字段中的消息会被截断。单位为 Byte。可选。 |
Pattern | 消息追踪的模式。支持的设置如下:
|
单击 Add trace。
(可选)为其他节点添加 Trace。
在 Node 中切换到其他节点,重复步骤2,为其他所有节点添加 trace。
说明
如果当前 RabbitMQ 实例为集群版实例,则可以为所有的节点创建 trace。
查看已创建的 Trace 列表。
成功创建 Trace 后,您可以在 WebUI 的 All traces 区域查看已创建的 Trace 列表。
查看 trace 日志文件。
当 trace 日志文件中存入消息日志后,在 Trace log files 区域单击 Trace 日志文件名称,查看日志内容。
说明
若不再需要这些日志信息,可以直接单击 Delete 进行删除。
text.log
的日志内容如下。
json.log
的日志内容如下。