在使用rabbitmq時(shí),我們有時(shí)需要查看消息隊(duì)列生產(chǎn)/消費(fèi)了那些消息,便于我們排錯(cuò)。rabbitmq中提供一個(gè)插件rabbitmq_tracing用于記錄消息的日志,默認(rèn)是未打開的,需要自己用命令打開
docker exec -it rabbitmq1 bash
# 查看打開的插件
rabbitmq-plugins list
# 啟動(dòng)日志插件
rabbitmq-plugins enable rabbitmq_tracing
# 開啟rabbitmq的tracing插件
rabbitmqctl trace_on
# 如果添加到其他虛擬主機(jī)
# -p 參數(shù)前綴 加上你的虛擬主機(jī)名字
rabbitmqctl trace_on -p myhost
- 關(guān)閉trace功能
# 關(guān)閉trace功能
rabbitmqctl trace_off
# 關(guān)閉其他虛擬主機(jī)
rabbitmqctl trace_off -p myhost
- 停止tracing
rabbitmq-plugins disable rabbitmq_tracing
安裝該插件后在控制臺的管理tab頁,在Admin中會(huì)發(fā)現(xiàn)右側(cè)有多了一個(gè)Tracing選項(xiàng)
-
name:用于區(qū)分不同的track
-
Format:表示輸出的消息日志格式,有Text和JSON兩種,Text格式的日志方便人類閱讀,JSON的方便程序解析
-
Pattern:用來設(shè)置匹配的模式,和Firehose的類似。如“#”匹配所有消息流入流出的記錄;“publish.#”匹配所有消息流入的情況;“deliver.#”匹配所有消息流出的情況。
其中,最重要的是理解pattern的格式。一般來跟蹤消息時(shí)會(huì)涉及到兩個(gè)部分:有沒有發(fā)布到MQ,有沒有發(fā)出去。其抓包記錄的格式如下:
publish是到exhange的時(shí)間;recevied是到queue的時(shí)候,并不是推送到消費(fèi)者的時(shí)間,如果消費(fèi)慢,那么積壓是必然的,可能會(huì)很久后才被處理,這個(gè)只能在消費(fèi)端跟蹤。
官網(wǎng)文章來源:http://www.zghlxwxcb.cn/news/detail-558449.html
The firehose publishes messages to the topic exchange amq.rabbitmq.trace with
routing key either "publish.exchangename", for messages entering the broker, or "deliver.queuename", for messages leaving the broker;
也就是抓publish跟著exchangename走,抓消費(fèi)跟著queuename走。文章來源地址http://www.zghlxwxcb.cn/news/detail-558449.html
到了這里,關(guān)于查看rabbitmq日志,Rabbitmq Trace日志的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!