RabbitMQ 日志


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崩潰的報告


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM