如何监控Ubuntu RabbitMQ的运行状态
监控Ubuntu环境下RabbitMQ的运行状态,需结合可视化工具、命令行工具、第三方系统及日志分析,覆盖从基础状态到高级性能的全维度监控。以下是具体方法:
RabbitMQ自带Management Plugin,提供Web界面,可直观查看队列、连接、节点等状态,是运维的核心工具。
rabbitmq-plugins enable rabbitmq_management(默认包含在RabbitMQ安装包中)。http://<服务器IP>:15672,首次登录需使用默认用户guest/guest(仅限本地访问,生产环境需修改密码或创建新用户)。命令行工具适合脚本化监控或远程服务器无界面的场景,常用命令如下:
sudo systemctl status rabbitmq-server(若显示active (running)则表示服务正常);sudo rabbitmqctl status(输出包括版本、运行时间、内存/磁盘使用、集群节点信息);sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged(查看队列名称、就绪消息数、未确认消息数);sudo rabbitmqctl list_connections peer_port state(查看客户端连接端口、状态);sudo rabbitmqctl list_channels prefetch consumer_count unacked_messages(查看信道预取数量、消费者数、未确认消息数)。对于生产环境,需更专业的监控方案,Prometheus(指标收集)+ Grafana(可视化)是主流选择:
rabbitmq-plugins enable rabbitmq_prometheus,RabbitMQ会暴露/metrics接口供Prometheus采集;prometheus.yml中添加RabbitMQ抓取任务,例如:scrape_configs:
- job_name: 'rabbitmq'
static_configs:
- targets: ['<服务器IP>:15692'] # Prometheus插件默认端口为15692
RabbitMQ日志记录了运行中的错误、警告及关键事件,是排查问题的关键依据:
/var/log/rabbitmq/(如rabbit@<hostname>.log),可通过/etc/rabbitmq/rabbitmq.conf修改日志路径;tail -f /var/log/rabbitmq/rabbit@<hostname>.log命令,实时跟踪日志输出;connection refused(网络不通)、authentication failed(用户名/密码错误);queue deleted(队列被删除)、message rejected(消息被拒绝);memory limit reached(内存不足)、disk space low(磁盘空间不足)。若不想自建监控体系,可使用第三方工具,它们通常提供RabbitMQ集成模板,简化配置流程:
guest的远程访问(rabbitmqctl change_password guest <新密码>),并创建专用用户;15672(管理界面)、5672(AMQP协议)、15692(Prometheus)等端口;