Debian 上 RabbitMQ 插件的安装与管理
一 环境准备与版本匹配
- 安装 Erlang(RabbitMQ 运行依赖):sudo apt-get update && sudo apt-get install -y erlang-nox。
- 添加 RabbitMQ 官方 APT 仓库(推荐方式,便于获取新版本):
- 导入密钥:curl -1sLf “https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA” | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg >/dev/null
- 写入源(注意选择与系统匹配的发行版代号,Debian 11 常用 bullseye,Debian 12 常用 bookworm;以下示例为 Debian 11,若使用 Ubuntu 的 PPA 源需替换为对应代号如 jammy):
echo “deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu bullseye main” | sudo tee /etc/apt/sources.list.d/rabbitmq.list
echo “deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://ppa.launchpad.net/rabbitmq/rabbitmq-server/ubuntu bullseye main” | sudo tee -a /etc/apt/sources.list.d/rabbitmq.list
- 更新并安装:sudo apt-get update && sudo apt-get install -y rabbitmq-server。
- 启动与开机自启:sudo systemctl enable --now rabbitmq-server;检查状态:sudo systemctl status rabbitmq-server。
- 说明:若你更倾向使用 Debian 原生仓库,也可直接 apt 安装,但版本可能较旧;插件生态通常以官方仓库为准。
二 插件管理常用命令
- 启用插件:sudo rabbitmq-plugins enable <插件名>
- 禁用插件:sudo rabbitmq-plugins disable <插件名>
- 列出插件:
- rabbitmq-plugins list(简要)
- rabbitmq-plugins list -v(含版本与描述)
- rabbitmq-plugins list -e(仅显示已启用)
- 仅启用指定插件并禁用其他:rabbitmq-plugins set <插件名>
- 说明:多数官方插件启用后需重启服务才生效(见下一节示例)。
三 常用插件与启用示例
- 管理插件 rabbitmq_management(Web 控制台):
- 启用:sudo rabbitmq-plugins enable rabbitmq_management
- 重启:sudo systemctl restart rabbitmq-server
- 访问:http://<服务器IP或域名>:15672
- 登录:默认账户 guest/guest(仅本机访问);生产环境请创建专用管理员账户(见第四节)。
- 延迟交换机插件 rabbitmq_delayed_message_exchange(社区插件,提供 x-delayed-message 交换机类型):
- 下载插件 .ez 文件(选择与你的 RabbitMQ 版本匹配的版本)至 /usr/lib/rabbitmq/lib/rabbitmq_server-<版本>/plugins/
- 启用:sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange
- 重启:sudo systemctl restart rabbitmq-server
- 注意:社区插件不在官方仓库,需自行维护版本兼容性与安全性。
四 安全与运维要点
- 用户与权限(避免使用默认 guest/guest 远程登录):
- 创建用户:sudo rabbitmqctl add_user <用户名> <密码>
- 设置管理员标签:sudo rabbitmqctl set_user_tags <用户名> administrator
- 设置权限(示例对根虚拟主机“/”授予全部权限):sudo rabbitmqctl set_permissions -p / <用户名> “." ".” “.*”
- 常用运维命令:
- 节点状态:sudo rabbitmqctl status
- 集群状态:sudo rabbitmqctl cluster_status
- 队列列表:sudo rabbitmqctl list_queues
- 清空队列消息:sudo rabbitmqctl purge_queue <队列名>
- 防火墙与监听:确保 15672(管理)、5672(AMQP)等端口对需要的主机开放(例如使用 UFW:sudo ufw allow 15672,5672/tcp)。