- 首页 >
- 问答 >
-
智能运维 >
- RabbitMQ在Ubuntu上的插件使用教程
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。