轉
在使用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}