rabbitmq启用日志功能记录消息队列收发情况

来源:互联网 发布:中世纪2优化9兵种 编辑:程序博客网 时间:2024/05/22 15:25

原文:http://blog.csdn.net/u013256816/article/details/76039201

1、启用日志插件命令

rabbitmq-plugins enable rabbitmq_tracing


2、到管理界面添加tracing

点击“Admin”菜单,右边会多出一个“Tracing”的菜单,填写Name、Format、Max payload bytes、Pattern

然后点击“添加Add trace”即可添加一个日志


填写说明

Format”表示输出的消息日志格式,有Text和JSON两种,Text格式的日志方便人类阅读,JSON的方便程序解析。 
Text格式的消息日志参考如下:

================================================================================2017-10-24 9:37:04:412: Message publishedNode:         rabbit@node1Connection:   <rabbit@node1.3.3552.0>Virtual host: /User:         rootChannel:      1Exchange:     exchangeRouting keys: [<<"rk">>]Routed queues: [<<"queue">>]Properties:   [{<<"delivery_mode">>,signedint,1},{<<"headers">>,table,[]}]Payload: trace test payload.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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=="}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

JSON格式的payload(消息体)默认会采用Base64进行编码,如上面的“trace test payload.”会被编码成“dHJhY2UgdGVzdCBwYXlsb2FkLg==”。

“Max payload bytes”表示每条消息的最大限制,单位为B。比如设置了了此值为10,那么当有超过10B的消息经过RabbitMQ流转时,在记录到trace文件的时候会被截断。如上text日志格式中“trace test payload.”会被截断成“trace test”。

“Pattern”用来设置匹配的模式,和Firehose的类似。如“#”匹配所有消息流入流出的情况,即当有客户端生产消息或者消费消息的时候,会把相应的消息日志都记录下来;“publish.#”匹配所有消息流入的情况;“deliver.#”匹配所有消息流出的情况。


原创粉丝点击