温馨提示×

RabbitMQ在Ubuntu上的插件使用教程

小樊
42
2025-12-24 18:28:04
栏目: 智能运维

Ubuntu 上 RabbitMQ 插件使用教程

一 环境准备与基础检查

  • 安装依赖与 RabbitMQ:
    • 安装 Erlang(RabbitMQ 运行依赖):sudo apt-get install erlang-nox
    • 安装服务器:sudo apt-get install rabbitmq-server
  • 常用服务管理:
    • 启动/停止/重启/状态:sudo systemctl start|stop|restart|status rabbitmq-server
  • 版本核对(可选):
    • 查看 Erlang:erl
    • 查看 RabbitMQ:sudo rabbitmqctl status
  • 说明:RabbitMQ 默认随安装自动启动;如未运行,请先启动服务再启用插件。

二 插件常用命令与基础操作

  • 查看插件列表(带启用状态):sudo rabbitmq-plugins list
  • 启用插件:sudo rabbitmq-plugins enable <插件名>
  • 禁用插件:sudo rabbitmq-plugins disable <插件名>
  • 启用多个插件:sudo rabbitmq-plugins enable <插件1> <插件2>
  • 提示:插件启用后会自动随节点启动;部分插件可能依赖其他插件,启用顺序错误或缺少依赖会导致失败。

三 常用内置插件与启用方法

  • Web 管理插件 rabbitmq_management
    • 启用:sudo rabbitmq-plugins enable rabbitmq_management
    • 访问地址:http://<服务器IP或域名>:15672
    • 默认账号/密码:guest/guest
    • 重要限制:自 3.3 起,guest 默认仅允许从 localhost 登录;远程访问需创建新用户并赋权(见第四节)。
  • MQTT 插件 rabbitmq_mqtt
    • 启用:sudo rabbitmq-plugins enable rabbitmq_mqtt
    • 用途:提供 MQTT 协议接入能力,便于 IoT/移动端接入。
  • WebSocket MQTT 插件 rabbitmq_web_mqtt
    • 启用:sudo rabbitmq-plugins enable rabbitmq_web_mqtt
    • 用途:通过 WebSocket 承载 MQTT,便于浏览器或前端直连。
  • 延迟交换机插件 rabbitmq_delayed_message_exchange
    • 获取方式:从 RabbitMQ 社区插件页面下载与当前 Erlang/RabbitMQ 版本匹配 的 .ez 文件
    • 放置目录:/usr/lib/rabbitmq/lib/rabbitmq_server-<版本>/plugins
    • 启用:sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange
    • 用途:实现消息的延迟投递/定时投递能力。

四 远程访问与安全配置

  • 创建管理员用户(用于远程登录管理界面)
    • 新增用户:sudo rabbitmqctl add_user <用户名> <密码>
    • 赋权:sudo rabbitmqctl set_permissions -p / <用户名> “." ".” “.*”
    • 设置角色(推荐 administrator):sudo rabbitmqctl set_user_tags <用户名> administrator
  • 允许远程使用 guest(不推荐,仅测试环境)
    • 编辑配置文件:/etc/rabbitmq/rabbitmq.config
    • 内容示例:[{rabbit, [{loopback_users, []}]}].
    • 重启服务:sudo systemctl restart rabbitmq-server
  • 防火墙与端口
    • 放行管理界面与 AMQP:sudo ufw allow 15672,5672/tcp(或按你的防火墙工具放行)
    • 本地连通性测试:nc -vz localhost 5672(AMQP),浏览器访问 http://:15672(管理界面)
  • 安全建议
    • 生产环境禁用或限制 guest 远程登录,使用自建管理员/业务账号与最小权限原则
    • 结合 vhost 隔离业务,按需分配权限与角色。

五 常见问题与排查

  • 启用插件时报错或依赖不满足
    • 先执行 rabbitmq-plugins list 检查插件名与状态;确认插件与当前 RabbitMQ/Erlang 版本匹配;必要时先启用依赖插件。
  • 管理界面打不开
    • 核对插件已启用(rabbitmq_management)、端口 15672 已放行、服务运行中(systemctl status rabbitmq-server);远程登录请使用自建管理员账号而非 guest。
  • 客户端连不通 AMQP 5672
    • 核对服务运行、端口 5672 放行、防火墙/云安全组策略;本地可用 nc -vz localhost 5672 验证,再排查网络与客户端配置。
  • 延迟交换机不可用
    • 确认 .ez 插件文件放置路径正确、版本匹配,启用后重启节点,并在创建 exchange 时使用类型 x-delayed-message

0