RabbitMQ-日志与监控、消息追踪

日志与监控

RabbitMQ日志

linux系统下: RabbitMQ默认日志存放路径: /var/log/rabbitmq/rabbit@xxx.log xxx为你的主机名

日志包含了RabbitMQ的版本号、Erlang的版本号、RabbitMQ服务节点名称、cookie的hash值、RabbitMQ配置文件地址、内存限制、磁盘限制、默认账户guest的创建以及权限配置等等。

Web管控台监控

通过RabbitMQManagement我们可以监控到许多信息

使用命令rabbitmqctl管理和监控

查看队列 rabbitmqctl list_queues

查看exchanges rabbitmqctl list_exchanges

查看用户 rabbitmqctl list_users

查看连接 rabbitmqctl list_connections

查看消费者信息 rabbitmqctl list__consumers

查看环境变量 rabbitmqctl environment

查看未被确认的队列 rabbitmqctl list_queues name messages_unacknowledged

查看单个队列的内存使用 rabbitmqctl list_queues name memory

查看准备就绪的队列 rabbitmqctl list__queues name messages_ready

消息追踪

消息追踪-Firehose

firehose的机制是将生产者投递给rabbitmq的消息,rabbitmq投递给消费者的消息按照指定

的格式发送到默认的exchange上。这个默认的exchange的名称为amq.rabbitmq.trace,

它是一个topic类型的exchange。发送到这个exchange上的消息的routing key为

publish.exchangename和deliver.queuename。其中exchangename和queuename为实际

exchange和queue的名称,分别对应生产者投递到exchange的消息,和消费者从queue

上获取的消息。

注意:打开trace会影响消息写入功能,适当打开后请关闭。 rabbitmqctl trace_on:开启Firehose命令 rabbitmqctl trace_off:关闭Firehose命令

使用步骤:

这里我的登录账户为hzh 注意账户可以访问的虚拟机 创建一个队列用于后面绑定默认的amq.rabbitmq.trace交换机 将上面创建的queue_trace队列绑定到将默认的amq.rabbitmq.trace交换机

测试给queue_trace发一条信息后,除了你自己发的,amq.rabbitmq.trace也会帮你发一条日志信息:

消息追踪-rabbitmq_tracing

rabbitmq_tracing和Firehose在实现上如出一辙,只不过rabbitmq_tracing的方式比Firehose多了一层GUI的包装,更容易使用和管理。 启用插件: rabbitmq-plugins enable rabbitmq_tracing

启用后在RabbitMQManagement可以看到多了一个选项: 添加一个用于消息追踪的trace 添加完成后,随便给一个队列发一条消息,便会被追踪到并记录到日志文件 点进日志文件:

经验分享 程序员 微信小程序 职场和发展