RabbitMQ 是常用的开源消息代理,支持 AMQP 等多种协议。AlmaLinux 8.x 与 RHEL 8 系列兼容,官方推荐从 Team RabbitMQ 维护的 *.rabbitmq.com 镜像用 dnf 安装,这样能获得与当前 RabbitMQ 版本匹配的 现代 Erlang/OTP(发行版自带仓库里的 Erlang 往往过旧,无法满足新版本要求)。
下文以 AlmaLinux 8.10、x86_64 为例(官方仓库中的 Erlang 二进制包面向 amd64;若为 aarch64,需按官方文档从 GitHub 单独安装 zero-dependency Erlang RPM)。
一、前置条件
- 已配置好网络,并能使用
sudo或 root。 - 建议先更新系统基础仓库元数据(可选):
sudo dnf update -y
二、导入签名密钥
dnf/yum 会校验 RPM 签名,先导入官方给出的三把密钥(与 Installing on RPM-based Linux 一致):
sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key'
sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'
三、添加 Yum/DNF 仓库(EL8)
在 /etc/yum.repos.d/rabbitmq.repo 中写入 RHEL 8 / AlmaLinux 8 对应的段落(el/8)。下面内容与官方文档中「较旧发行版」页签一致,仅作排版整理;若上游有微调,请以 官方安装页 为准。
## Zero dependency Erlang RPM
[modern-erlang]
name=modern-erlang-el8
baseurl=https://yum1.rabbitmq.com/erlang/el/8/$basearch
https://yum2.rabbitmq.com/erlang/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-noarch]
name=modern-erlang-el8-noarch
baseurl=https://yum1.rabbitmq.com/erlang/el/8/noarch
https://yum2.rabbitmq.com/erlang/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
## RabbitMQ Server
[rabbitmq-el8]
name=rabbitmq-el8
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/8/$basearch
https://yum1.rabbitmq.com/rabbitmq/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el8-noarch]
name=rabbitmq-el8-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/8/noarch
https://yum1.rabbitmq.com/rabbitmq/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
保存后刷新元数据:
sudo dnf clean all
sudo dnf makecache
若长期看不到新版本,可按官方说明再执行 dnf clean metadata 等清理缓存步骤。
四、安装依赖与软件包
logrotate 来自系统仓库,其余由 RabbitMQ 仓库提供:
sudo dnf install -y logrotate
sudo dnf install -y erlang rabbitmq-server
五、启动服务并设置开机自启
安装完成后默认不会自动常驻,需要手动启用并启动:
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl status rabbitmq-server
快速探测节点是否正常:
sudo rabbitmq-diagnostics ping
更详细状态:
sudo rabbitmq-diagnostics status
日志默认在 /var/log/rabbitmq/;也可用 journalctl -u rabbitmq-server 查看 systemd 日志。
六、(可选)启用管理插件与防火墙
浏览器管理界面(默认监听 15672):
sudo rabbitmq-plugins enable rabbitmq_management
若启用了 firewalld,需放行 AMQP 与管理端口(按实际策略调整区域名,例如 public):
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --permanent --add-port=15672/tcp
sudo firewall-cmd --reload
七、默认账户与安全提示
安装后会存在默认用户 guest / guest。默认策略下,仅允许从本机(localhost) 使用该账号连接;从其他机器访问前,应通过 rabbitmqctl 创建业务用户、授予 vhost 权限,并视情况禁用或删除 guest。详见官方 Access Control 文档。
八、生产环境可顺带留意
- 文件描述符:高并发场景下可能需要提高
rabbitmq用户的nofile等限制,官方建议在 systemd drop-in(如/etc/systemd/system/rabbitmq-server.service.d/limits.conf)中设置LimitNOFILE。详见安装页「Controlling System Limits on Linux」一节。 - SELinux:若绑定端口或数据目录策略导致启动失败,需按审计日志与官方 Networking 指南排查。
九、小结
在 AlmaLinux 8.10 上安装 rabbitmq-server 的可靠路径是:导入官方 GPG 密钥 → 添加针对 el/8 的 rabbitmq.repo → 安装 logrotate、erlang、rabbitmq-server → systemctl 启停与自检。版本与 Erlang 兼容性以官方 Release Information 与 Supported Erlang Versions 为准,升级前建议阅读发行说明并在维护窗口执行 dnf update。