监控RabbitMQ需覆盖服务状态、性能指标、队列情况、日志分析等方面,以下是Ubuntu环境下常用的监控方法,从基础到进阶依次说明:
命令行是最直接的监控方式,适合快速排查问题或自动化脚本调用。
查看RabbitMQ服务状态
使用systemctl(Ubuntu 16.04及以上)或service命令检查RabbitMQ服务是否运行:
sudo systemctl status rabbitmq-server # 新版本
sudo service rabbitmq-server status # 旧版本
若服务未运行,可通过sudo systemctl start rabbitmq-server启动。
查看RabbitMQ节点详细状态
使用rabbitmqctl命令获取节点的运行状态(包括内存、磁盘使用、连接数等):
sudo rabbitmqctl status
输出信息包含节点名称、Erlang VM状态、队列数量、消息速率等关键指标。
查看队列详情
列出所有队列及其消息数量、消费者数、积压情况:
sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged
messages_ready:待消费的消息数;messages_unacknowledged:已接收但未确认的消息数(需关注是否积压)。查看连接信息
列出所有客户端连接,包括IP、端口、协议、虚拟主机等:
sudo rabbitmqctl list_connections
可结合grep过滤特定连接的详细信息(如sudo rabbitmqctl list_connections | grep "192.168.1")。
通过Web界面可直观查看RabbitMQ的各项指标,适合日常运维。
启用管理插件
若未启用,执行以下命令激活管理功能:
sudo rabbitmq-plugins enable rabbitmq_management
启用后,RabbitMQ会启动一个内置的HTTP服务器(默认端口15672)。
访问管理界面
在浏览器中输入http://<服务器IP>:15672,默认使用guest/guest登录(仅限本地访问)。
允许远程访问(可选)
若需从远程机器访问,需修改配置文件/etc/rabbitmq/rabbitmq.conf(若不存在则新建),添加以下内容:
listeners.tcp.default = 0.0.0.0:5672 # 允许所有IP访问AMQP端口
management.listener.port = 15672
management.listener.ip = 0.0.0.0 # 允许所有IP访问管理端口
重启服务使配置生效:sudo systemctl restart rabbitmq-server。
注意:远程访问需加强安全措施(如修改默认密码、配置防火墙、启用TLS)。
RabbitMQ日志记录了运行中的错误、警告及关键事件,是排查问题的重要依据。
日志位置
Ubuntu下RabbitMQ日志默认存储在/var/log/rabbitmq/目录,文件名为rabbit@<主机名>.log(如rabbit@ubuntu-server.log)。
实时查看日志
使用tail命令实时跟踪最新日志:
sudo tail -f /var/log/rabbitmq/rabbit@$(hostname).log
过滤关键信息
通过grep过滤错误或警告日志(如连接超时、内存不足):
sudo grep -i "error\|warning" /var/log/rabbitmq/rabbit@$(hostname).log
常见关注点:
connection timeout;memory limit reached;queue length exceeded。对于企业级环境,需借助第三方工具实现实时监控、告警、趋势分析,以下是常用方案:
Prometheus + Grafana(开源组合)
sudo rabbitmq-plugins enable rabbitmq_prometheus
prometheus.yml):scrape_configs:
- job_name: 'rabbitmq'
static_configs:
- targets: ['localhost:15692'] # Prometheus插件端口
观测云(DataKit)(国内易用方案)
观测云提供全链路可观测性,支持RabbitMQ指标采集与可视化。
配置步骤:
/usr/local/datakit/conf.d/rabbitmq/rabbitmq.conf):[[inputs.rabbitmq]]
url = "http://localhost:15672" # RabbitMQ管理接口
username = "guest" # 默认账号
password = "guest" # 默认密码
Zabbix(传统企业方案)
Zabbix通过自定义模板监控RabbitMQ,支持阈值告警(如CPU使用率超过80%、磁盘空间不足)。
配置步骤:
guest/guest仅限本地使用),配置防火墙限制访问端口(15672、5672);通过上述方法,可全面监控Ubuntu上RabbitMQ的运行状态,确保消息队列的稳定性与可靠性。