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 添加完成后,随便给一个队列发一条消息,便会被追踪到并记录到日志文件 点进日志文件:
