温馨提示×

CentOS RabbitMQ插件如何安装与管理

小樊
43
2025-12-09 14:15:24
栏目: 智能运维

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 statusrabbitmqctl cluster_status(集群环境)。

0