消息队列系列:Rabbitmq Trace 日志的使用

一、什么是Trace

     Trace是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。可通过插件形式提供可视化界面 

二、Trace实现概况

     1、Trace启动后会自动创建系统Exchange:amq.rabbitmq.trace

     2、每个队列会自动绑定该Exchange,绑定后发送到队列的消息都会记录到Trace日志 

三、怎样使用Trace

     1、先了解Rabbitmq的使用及Web监控工具的使用:http://www.cnblogs.com/gossip/p/4475978.html

     2、启动Trace插件

         a) 列出本机已安装的插件:rabbitmq-plugins list(请先定位到Rabbitmq服务安装目录)

         b) 启动Trace插件:rabbitmqctl trace_on   (关闭Trace:rabbitmqctl trace_off)

     3、查看捕获到的Trace信息

         a) Management插件-->Admin-->Trace

         b) 新增Trace,格式分别是Text(方便人类阅读)、Json(方便机器识别)

         c) 发送消息,查看Trace拦截的信

        d) 查看日志信息 (单击日志文件打开,这里是MyTrace.log) 

三、总结

     1、Rabbitmq的资料比较少,建议大家还是多看官方文档

     2、Trace主要通过插件方式提供

     3、Trace日志文件地址:C:\var\tmp\rabbitmq-tracing\MyTrace.log 

四、Rabbitmq启用日志功能记录消息队列收发情况

     1、启用日志插件命令

          rabbitmq-plugins enable rabbitmq_tracing

     2、到管理界面添加tracing

         点击“Admin”菜单,右边会多出一个“Tracing”的菜单,填写Name、Format、Max payload bytes、Pattern  然后点击“添加Add trace”即可添加一个日志

       

  填写说明

   Name:自定义,建议标准点容易区分 

   Format:表示输出的消息日志格式,有Text和JSON两种,Text格式的日志方便人类阅读,JSON的方便程序解析。 

   JSON格式的payload(消息体)默认会采用Base64进行编码,如上面的“trace test payload.”会被编码成“dHJhY2UgdGVzdCBwYXlsb2FkLg==”。

   Max payload bytes:表示每条消息的最大限制,单位为B。比如设置了了此值为10,那么当有超过10B的消息经过Rabbit MQ流转时,在记录到trace文件的时候会被截断。

   如上text日志格式中“trace test payload.”会被截断成“trace test”。

   Pattern:用来设置匹配的模式,和Firehose的类似。如“#”匹配所有消息流入流出的情况,即当有客户端生产消息或者消费消息的时候,会把相应的消息日志都记录下来;

  “publish.#”匹配所有消息流入的情况;“deliver.#”匹配所有消息流出的情况;“publish.exchange.b2b.gms.ass”只匹配发送者(Exchanges)为exchange.b2b.gms.ass的所有消息流入的情况。

 
 
posted @ 2018-08-24 12:17  以德为先  阅读(9745)  评论(0编辑  收藏  举报