1.安裝插件rabbitmq_tracing
https://www.cnblogs.com/li150dan/p/9529049.html
啟用日志插件命令: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.”會被編碼成“dHJhY2Ug dGVzdCBwYXlsb2FkLg==”。
Max payload bytes:表示每條消息的最大限制,單位為B。比如設置了了此值為10,那么當有超過10B的消息經過Rabbit MQ流轉時,在記錄到trace文件的時候會被截斷。如上text日志格式中“trace test payload.”會被截斷成“trace tes t”。
Pattern:用來設置匹配的模式,和Firehose的類似。如“#”匹配所有消息流入流出的情況,即當有客戶端生產消息或者 消費消息的時候,會把相應的消息日志都記錄下來;“publish.#”匹配所有消息流入的情況;“deliver.#”匹配所有消息 流出的情況;“publish.exchange.b2b.gms.ass”只匹配發送者(Exchanges)為exchange.b2b.gms.ass的所有消息 流入的情況。
Text格式的消息日志參考如下:
================================================================================
2017-10-24 9:37:04:412: Message published Node: rabbit@node1 Connection: <rabbit@node1.3.3552.0> Virtual host: / User: root Channel: 1 Exchange: exchange Routing keys: [<<"rk">>] Routed queues: [<<"queue">>] Properties: [{<<"delivery_mode">>,signedint,1},{<<"headers">>,table,[]}] Payload: trace test payload.
JSON格式的消息日志參考如下:
{
"timestamp": "2017-10-24 9:37:04:412", "type": "published", "node": "rabbit@node1", "connection": "<rabbit@node1.3.3552.0>", "vhost": "/", "user": "root", "channel": 1, "exchange": "exchange", "queue": "none", "routed_queues": [ "queue" ], "routing_keys": [ "rk" ], "properties": { "delivery_mode": 1, "headers": {} }, "payload": "dHJhY2UgdGVzdCBwYXlsb2FkLg==" }
JSON格式的payload(消息體)默認會采用Base64進行編碼,如上面的“trace test payload.”會被編碼成“dHJhY2UgdGVzdCBwYXlsb2FkLg==”。
引自:https://blog.csdn.net/shmily_lsl/article/details/81185792
3.修改日志路徑
https://blog.slogra.com/post-301.html
https://blog.csdn.net/xiaoming1563/article/details/82385486
https://blog.csdn.net/luckykapok918/article/details/78115192
創建rabbitmq-env.conf和rabbitmq.config
一般情況下,RabbitMQ的默認配置就足夠了。如果希望特殊設置的話,有兩個途徑:
一個是環境變量的配置文件 rabbitmq-env.conf
一個是配置信息的配置文件 rabbitmq.config
注意:這兩個文件默認是沒有的,如果需要必須自己創建
把rabbitmq-env.conf和rabbitmq.config創建於/etc/rabbitmq目錄下,其中rabbitmq-env.conf這個文件的位置是確定和不能改變,必須是在/etc/rabbitmq目錄下.
touch /etc/rabbitmq/rabbitmq-env.conf
touch /etc/rabbitmq/rabbitmq.config
rbbitmq-env.conf包括rabbitmq的一些環境變量:
RABBITMQ_MNESIA_BASE=/usr/local/rabbitmq-server/data //需要使用的MNESIA數據庫的路徑
RABBITMQ_LOG_BASE=/var/log/rabbitmq //log的路徑
RABBITMQ_PLUGINS_DIR=/usr/local/rabbitmq-server/plugins //插件的路徑
rabbitmq.config這是一個標准的erlang配置文件,它必須符合erlang配置文件的標准。
它既有默認的目錄,也可以在rabbitmq-env.conf文件中配置。
設置rabbitmq日志級別
vi /etc/rabbitmq/rabbitmq.conf
[
{rabbit, [{log_levels, [{connection, warning}]}]}
].
也可以這樣寫成
[
{rabbit, [{log_levels, [{connection, error}]}]}
].
ps:最后的]有.號的,希望不要忽略了.
設置rabbitmq日志路徑
vi /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_LOG_BASE=/vol/pic/log/rabbitmq
注意:打開trace(日志調試插件)會影響MQ的消息寫入功能,Trace是Rabbitmq記錄每一次發送的消息,方便使用RabbitMQ的開發者調試、排錯的。
原理:
1、Trace啟動后會自動創建Exchange:amq.rabbitmq.trace
2、每個隊列會自動綁定該Exchange,綁定后發送到隊列的消息都會記錄到Trace日志
在..var/log/rabbitmq/路徑下有兩個日志文件:
rabbit@localhost.log MQ啟動、連接日志
rabbit@localhost-sasl.log saal 用來記錄Erlang相關的信息,例如查看Erlang崩潰的報告