转
在使用rabbitmq时,我们有时需要查看消息队列生产/消费了那些消息,便于我们排错。rabbitmq中提供一个插件rabbitmq_tracing用于记录消息的日志,默认是未打开的,需要自己用命令打开
# 查看打开的插件(前面带e*)
rabbitmq-plugins list
#开启rabbitmq的tracing插件
rabbitmq-plugins enable rabbitmq_tracing
打开后,登录rabbitmq的web界面,在Admin中我们会发现右侧有一个Tracing选项。点击后如下示:
name:用于区分不同的track
Format:表示输出的消息日志格式,有Text和JSON两种,Text格式的日志方便人类阅读,JSON的方便程序解析
Pattern:用来设置匹配的模式,和Firehose的类似。如“#”匹配所有消息流入流出的记录;“publish.#”匹配所有消息流入的情况;“deliver.#”匹配所有消息流出的情况。
创建后如下图:
输出的日志内容如下(text格式的输出):
================================================================================
2019-10-09 6:45:18:729: Message received
Node: rabbit@iz128tnse5wy46z
Connection: 1.85.243.91:7074 -> 172.24.231.201:5672
Virtual host: /
User: admin
Channel: 1
Exchange: commonConsumer
Routing keys: [<<"commonConsumer">>]
Queue: commonConsumer.anonymous.5FpN_RWtS-eWOIbtDzwesw
Properties: [{<<"timestamp">>,signedint,1570603527},
{<<"message_id">>,longstr,
<<"027d36c7-013c-0844-c10f-2f837e78c5f2">>},
{<<"priority">>,signedint,0},
{<<"delivery_mode">>,signedint,2},
{<<"headers">>,table,[]},
{<<"content_type">>,longstr,<<"application/json">>}]
Payload:
{"userId":202,"entrustId":201,"businessFlowId":200}