You need to enable JavaScript to run this app.
导航

使用 rabbitmq_tracing 插件

最近更新时间2023.05.06 11:10:18

首次发布时间2023.02.20 19:30:09

消息队列 RabbitMQ版支持 rabbitmq_tracing 插件,追踪流入流出 RabbitMQ 的消息,并保存记录消息的日志文件,用于问题排查、功能调试等场景。

背景信息

在消息中间件的使用场景中,往往会出现消息异常丢失的现象,例如消息生产者成功发送消息,消费者却未消费消息。消息丢失的现象有多种可能因素,例如编码导致的逻辑错误、网络连接问题等,在这种场景下需要一种消息追踪的机制,用于定位消息失踪的具体原因,便于异常场景下的功能调试与问题排查。
消息队列 RabbitMQ版通过 rabbitmq_tracing 插件提供消息追踪功能,开启插件并添加 Trace 后,后台会自动创建一个 Exchange,每个队列会自动绑定该 Exchange,绑定后发送到这些队列的消息都会记录到 Trace 日志。查看 Trace 文件即可查看指定消息的跟踪信息。

说明

  • 消息追踪功能会消耗一定的性能和存储空间,消耗的存储空间大小与消息量有关。使用 rabbitmq_tracing 前请确保实例存储空间容量充足。为避免 Trace 日志打满磁盘,消息追踪功能会持续监控磁盘容量水位,占用率达到 80% 时不再写入 Trace 日志,您可以清理不再需要的 Trace 日志,腾出磁盘空间。
  • 建议在问题排查结束后关闭 rabbitmq_tracing 插件,并清理相关的日志,以减少性能损耗、节约存储空间。

前提条件

已创建实例,并为实例开启了 rabbitmq_tracing 插件。详细操作步骤请参考开启插件

操作步骤

  1. 登录 RabbitMQ WebUI 页面。
    操作步骤请参考 连接 RabbitMQ 管理地址

  2. 添加 trace。

    1. 在顶部导航栏单击 Admin

    2. 在 Admin 页签的右侧导航栏单击 Tracing。

    3. Tracing 页面的 Add a new trace 区域输入相关参数。
      参数说明如下:

      参数

      说明

      Name

      新 trace 的名称。该名称用于区分不同的 trace。

      Format

      输出的消息日志格式。支持以下格式:

      • Text:(推荐)文本格式,信息平铺展示,便于在 WebUI 中阅读。
      • JSON:Base64 编码后的 JSON 格式,便于后续导出后进行解析。

      Tracer connection username

      创建 trace 的用户名。此处应指定为 WebUI 管理员用户的用户名,您可以在实例的实例信息页面查看。详细操作请参考查看实例信息

      Tracer connection password

      创建 trace 的用户密码。此处应指定为 WebUI 管理员用户的用户密码,如果忘记密码,可以在实例的实例信息页面重置密码。详细操作请参考重置管理员用户密码

      Max payload bytes

      trace 文件 payload 字段的最大限制,超限后 payload 字段中的消息会被截断。单位为 Byte。可选。
      例如 Max payload bytes 设置为 5,原始消息内容为“Hello World!”,生产者将其发送至 RabbitMQ 实例并传送至消费者消费,后端服务将其记录到 trace 文件中时该消息会被截断为“Hello”。

      Pattern

      消息追踪的模式。支持的设置如下:

      • #:追踪所有消息,即所有流入或流出 RabbitMQ 实例的消息。
      • publish.#:只追踪发起方的发送记录,即记录所有流入 RabbitMQ 实例的消息。
      • publish.myExchage:只追踪进入指定 Exchage 的信息。其中 myExchage 为 Exchage 名称,请根据实际情况修改。
      • deliver.#:只追踪接收方的处理记录,即记录所有流出 RabbitMQ 实例的消息。
      • deliver.myQueue:追踪离开指定队列的消息。其中 myQueue 为队列名称,请根据实际情况修改。
    4. 单击 Add trace

  3. (可选)为其他节点添加 Trace。
    在 Node 中切换到其他节点,重复步骤2,为其他所有节点添加 trace。

    说明

    如果当前 RabbitMQ 实例为集群版实例,则可以为所有的节点创建 trace。

  4. 查看已创建的 Trace 列表。
    成功创建 Trace 后,您可以在 WebUI 的 All traces 区域查看已创建的 Trace 列表。

  5. 查看 trace 日志文件。
    当 trace 日志文件中存入消息日志后,在 Trace log files 区域单击 Trace 日志文件名称,查看日志内容。

    说明

    若不再需要这些日志信息,可以直接单击 Delete 进行删除。

    • text.log 的日志内容如下。

    • json.log 的日志内容如下。