Linux环境下RabbitMQ如何管理
小樊
31
2025-12-06 18:49:49
Linux环境下 RabbitMQ 管理实操指南
一 服务启停与自启
- 推荐使用系统服务管理(支持 systemd 的发行版):
- 启动:sudo systemctl start rabbitmq-server
- 停止:sudo systemctl stop rabbitmq-server
- 重启:sudo systemctl restart rabbitmq-server
- 查看状态:sudo systemctl status rabbitmq-server
- 开机自启:sudo systemctl enable rabbitmq-server
- 直接运行与后台运行(适合快速调试或容器环境):
- 前台:rabbitmq-server
- 后台:rabbitmq-server --detached
- 仅停止应用、保留 Erlang 节点(维护场景常用):
- 停止应用:rabbitmqctl stop_app
- 启动应用:rabbitmqctl start_app
- 多节点环境可在命令后加 -n <节点名> 指定目标节点。
二 插件与 Web 管理
- 启用管理插件:rabbitmq-plugins enable rabbitmq_management
- 访问地址:http://<服务器IP或域名>:15672
- 默认账号:guest / guest(默认仅允许本机访问)
- 远程访问建议创建管理员用户并分配角色(见下一节)。
三 用户 虚拟主机 与权限
- 用户管理
- 新增用户:rabbitmqctl add_user <用户名> <密码>
- 修改密码:rabbitmqctl change_password <用户名> <新密码>
- 删除用户:rabbitmqctl delete_user <用户名>
- 列出用户:rabbitmqctl list_users
- 设置角色(常见:administrator、monitoring、management、policymaker):rabbitmqctl set_user_tags <用户名> <标签>
- 虚拟主机
- 新建:rabbitmqctl add_vhost
- 删除:rabbitmqctl delete_vhost
- 权限
- 设置权限(配置/写入/读取正则):rabbitmqctl set_permissions -p <用户> “." ".” “.*”
- 列出 vhost 权限:rabbitmqctl list_permissions -p
- 列出某用户权限:rabbitmqctl list_user_permissions <用户>
- 清除权限:rabbitmqctl clear_permissions -p <用户>
四 监控与运维常用命令
- 节点与集群状态
- 节点状态:rabbitmqctl status
- 集群状态:rabbitmqctl cluster_status
- 队列与交换机查询
- 队列列表:rabbitmqctl list_queues [-p ] [name,durable,auto_delete,messages_ready,messages_unacknowledged,messages,consumers,memory]
- 交换机列表:rabbitmqctl list_exchanges [-p ] [name,type,durable,auto_delete,internal,arguments]
- 日志与故障排查
- 日志路径:/var/log/rabbitmq/,常见文件:[email protected][hostname].log、[email protected][hostname]-sasl.log
- 动态日志订阅:将队列绑定到内置 Exchange amq.rabbitmq.log,按 error/warning/info 路由键接收实时日志。
五 配置与网络要点
- 配置文件
- 主配置文件路径:/etc/rabbitmq/rabbitmq.config
- 示例(允许远程使用 guest 登录,生产环境不建议):[{rabbit, [{loopback_users, []}]}].
- 端口与防火墙
- 5672(AMQP)、15672(管理界面)
- 开放端口示例:
- firewalld:sudo firewall-cmd --permanent --add-port=5672/tcp --add-port=15672/tcp && sudo firewall-cmd --reload
- ufw:sudo ufw allow 5672/tcp && sudo ufw allow 15672/tcp
- 安全建议
- 生产环境删除或禁用默认 guest 用户,创建强密码的管理员与业务用户,并按 vhost 做最小权限划分。