Ubuntu上RabbitMQ监控方法
RabbitMQ自带rabbitmq_management
插件,提供Web界面和HTTP API,是监控的核心工具。启用步骤如下:
# 启用管理插件(需root或sudo权限)
sudo rabbitmq-plugins enable rabbitmq_management
# 重启RabbitMQ服务使插件生效
sudo systemctl restart rabbitmq-server
启用后,可通过Web界面(http://<服务器IP>:15672
)或HTTP API(如http://<服务器IP>:15672/api/queues
)访问监控数据。
访问http://localhost:15672
(默认端口15672),使用默认用户guest
/guest
登录(仅限本地访问)。若需远程访问,需修改配置文件(见下文“远程访问配置”)。
Web界面主要模块及功能:
RabbitMQ提供rabbitmqctl
命令行工具,适合自动化监控和脚本集成。常用命令:
sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged
(显示队列名称、待处理消息数、未确认消息数);sudo rabbitmqctl list_connections pid name state channels
(显示连接ID、名称、状态、通道数);sudo rabbitmqctl status
(显示RabbitMQ版本、Erlang版本、内存/磁盘使用情况、进程数);sudo rabbitmqctl list_users
(显示所有用户及权限标签)。默认情况下,guest
用户仅能从localhost
访问管理界面。若需远程访问,需完成以下配置:
/etc/rabbitmq/rabbitmq.conf
(Ubuntu 18.04及以上版本),添加以下内容(替换your_username
和your_password
):# 允许远程访问的TCP端口
listeners.tcp.default = 5672
# 禁止本地用户远程登录(移除或注释loopback_users限制)
loopback_users = []
sudo systemctl restart rabbitmq-server
;# 添加用户(替换为强密码)
sudo rabbitmqctl add_user your_username your_password
# 设置用户标签为administrator(具备管理权限)
sudo rabbitmqctl set_user_tags your_username administrator
# 授权用户访问所有虚拟主机
sudo rabbitmqctl set_permissions -p / your_username ".*" ".*" ".*"
配置完成后,可通过http://<服务器IP>:15672
远程登录。
对于生产环境,建议使用Prometheus+Grafana组合实现专业化监控:
rabbitmq_prometheus
插件(默认启用)收集指标(如队列长度、消息速率、节点内存使用);sudo rabbitmq-plugins enable rabbitmq_prometheus
;/metrics
接口(默认地址:http://<服务器IP>:15692/metrics
);RabbitMQ日志默认存储在/var/log/rabbitmq/
目录下(文件名如rabbit@<主机名>.log
),可通过以下方式监控:
sudo tail -f /var/log/rabbitmq/rabbit@<主机名>.log
;sudo grep -i "error\|warning" /var/log/rabbitmq/rabbit@<主机名>.log
(快速定位异常);/etc/logrotate.d/rabbitmq
,设置日志文件大小限制(如100MB)和保留天数(如7天),避免日志占满磁盘。