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崩溃的报告