CentOS 上 RabbitMQ 插件的安装与管理
一 准备与环境检查
- 确认 Erlang 与 RabbitMQ 版本兼容,参考官方兼容矩阵:https://www.rabbitmq.com/which-erlang.html。
- 启动并检查服务状态:
- 启动:systemctl start rabbitmq-server
- 开机自启:systemctl enable rabbitmq-server
- 状态:systemctl status rabbitmq-server
- 常用插件目录:/usr/lib/rabbitmq/lib/rabbitmq_server-<版本>/plugins/(插件为 .ez 文件)。
- 插件命令行工具:rabbitmq-plugins(启用/禁用/列出插件)。
二 常用插件安装与启用
- 管理界面插件(推荐):
- 启用:rabbitmq-plugins enable rabbitmq_management
- 访问:http://服务器IP:15672,默认账号 guest/guest(默认仅允许本机访问)。
- MQTT 插件:
- 启用:rabbitmq-plugins enable rabbitmq_mqtt
- STOMP over Web 插件:
- 启用:rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq_web_stomp_examples
- 延时交换机插件(社区版,按版本匹配下载):
- 下载匹配版本的 rabbitmq_delayed_message_exchange-<版本>.ez,放入插件目录后启用:
- 启用:rabbitmq-plugins enable rabbitmq_delayed_message_exchange
- 注意:插件必须与 RabbitMQ 主版本一致(如 3.7.x 对应 3.7 的插件)。
三 插件管理常用命令
- 列出插件(标记说明:E=显式启用,e=隐式启用,空白=未启用):rabbitmq-plugins list
- 启用插件:rabbitmq-plugins enable <插件名>(可一次启用多个,空格分隔)
- 禁用插件:rabbitmq-plugins disable <插件名>
- 说明:启用/禁用会动态更新插件配置;如遇异常,可重启服务再试。
四 访问与安全配置
- 远程访问管理界面:
- 新建管理员用户并赋权:
- 添加用户:rabbitmqctl add_user admin <密码>
- 设置角色:rabbitmqctl set_user_tags admin administrator
- 设置权限:rabbitmqctl set_permissions -p / admin “." ".” “.*”
- 出于安全建议,禁用或删除默认 guest 远程登录:
- 删除:rabbitmqctl delete_user guest
- 或仅本地访问:在配置文件 /etc/rabbitmq/rabbitmq.config 中设置 {loopback_users, []}(示例:[{rabbit, [{loopback_users, []}]}].)。
- 防火墙放行端口(示例):
- 管理界面:firewall-cmd --add-port=15672/tcp --permanent && firewall-cmd --reload
- AMQP:firewall-cmd --add-port=5672/tcp --permanent && firewall-cmd --reload
- 服务重启(部分插件变更后建议重启):systemctl restart rabbitmq-server。
五 常见问题与排查
- 启用插件后访问 15672 失败:优先检查服务是否运行、插件是否启用成功、以及 防火墙/安全组 是否放行。
- 插件启用报错或不可用:确认 插件版本与 RabbitMQ 版本严格匹配,必要时重启服务再试。
- 管理界面无法远程登录:默认 guest 仅限 localhost,需创建 administrator 角色用户并赋权,或按需调整 loopback_users 配置。
- 查看节点与运行状态:rabbitmqctl status、rabbitmqctl cluster_status(集群环境)。