更新时间:2024-10-29 GMT+08:00

使用rabbitmq_tracing插件

rabbitmq_tracing插件提供消息追踪功能,它能追踪流入流出RabbitMQ的消息,并对其进行封装,将封装后的消息日志存入相应的trace文件中。

未开启SSL的RabbitMQ单机实例,支持开启rabbitmq_shovel插件。RabbitMQ集群实例和开启SSL的RabbitMQ单机实例,不支持开启rabbitmq_shovel插件。

操作影响

  • trace日志文件存在打满磁盘空间的风险,在高负载状态下建议不要开启rabbitmq_tracing插件。
  • trace日志文件占用的磁盘空间在插件关闭后才会被释放,建议不要长期开启该插件,定位完成后关闭trace任务和插件。

前提条件

已购买实例。

使用rabbitmq_tracing插件

  1. 开启rabbitmq_tracing插件,具体步骤请参考开启RabbitMQ实例插件
  2. 登录RabbitMQ WebUI页面
  3. 在顶部导航栏选择“Admin”,进入Admin页面。
  4. 在右侧导航栏选择“Virtual Hosts”,进入Virtual Hosts页面。

    图1 Virtual Hosts页面

  5. 单击待创建trace的Vhost名称,进入Vhost详情页面。

    图2 待创建trace的Vhost名称

  6. 在“Permissions”区域,为Vhost添加guest权限。

    使用trace功能的Vhost必须配置guest权限,否则创建trace时会报错。
    图3 为Vhost添加guest权限

  7. 在右侧导航栏选择“Tracing”,进入Tracing页面。

    图4 Admin页面

  8. 在“Add a new trace”区域,输入以下参数,单击“Add trace”,新增一个trace。

    表1 trace参数说明

    参数

    说明

    Virtual host

    选择待创建trace的Vhost名称。

    Name

    自定义trace的名称,用于区分不同的trace。

    Format

    输出消息日志的格式。支持“Text”和“JSON”两种格式,“Text”格式方便阅读,“JSON”格式方便解析。

    Tracer connection username

    指定创建trace的用户名。

    Tracer connection password

    指定创建trace的密码。

    Max payload bytes

    每条消息的最大限制,单位为B。

    假设“Max payload bytes”设置为“10”,当有超过10B的消息经过RabbitMQ流转时就会被载断,例如“trace test payload”会被载断成“trace test”。

    Pattern

    设置匹配的模式。取值示例如下:

    • #:追踪所有进入和离开RabbitMQ的消息
    • publish.#:追踪所有进入RabbitMQ的消息
    • deliver.#:追踪所有离开RabbitMQ的消息
    • publish.delay_exchange:追踪进入指定交换机的信息,delay_exchange为交换机名称,请根据实际情况修改。
    • deliver.delay_queue:追踪离开指定队列的消息,delay_queue为队列名称,请根据实际情况修改。
    图5 新增一个trace

    trace创建成功后,在“All traces”区域,显示已创建的trace列表。

    图6 trace列表

  9. (可选)如果RabbitMQ实例为集群,在“Node”中切换到其他节点,重复8,为其他所有节点创建trace。

    图7 切换节点

  10. 当trace日志文件中存入消息日志后,单击trace日志文件名称,查看日志内容。

    图8 trace日志文件

    “delay_exchange_trace.log”的日志内容如图9所示。

    图9 delay_exchange_trace.log

    “delay_queue_trace.log”的日志内容如图10所示。

    图10 delay_queue_trace.log

关闭trace任务和插件

  1. 在Tracing页面的“All traces”区域,单击“Stop”,关闭trace任务。

    图11 关闭trace任务

  2. 在RabbitMQ实例控制台的“插件管理”页面,单击rabbitmq_tracing后的“关闭”,弹出“关闭插件”对话框。
  3. 单击“是”,跳转到“后台任务管理”页面,任务状态变为“成功”时,表示成功关闭rabbitmq_tracing插件。