RabbitMQ 是常用的开源消息代理,支持 AMQP 等多种协议。AlmaLinux 8.x 与 RHEL 8 系列兼容,官方推荐从 Team RabbitMQ 维护的 *.rabbitmq.com 镜像用 dnf 安装,这样能获得与当前 RabbitMQ 版本匹配的 现代 Erlang/OTP(发行版自带仓库里的 Erlang 往往过旧,无法满足新版本要求)。

下文以 AlmaLinux 8.10x86_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/8rabbitmq.repo → 安装 logrotateerlangrabbitmq-serversystemctl 启停与自检。版本与 Erlang 兼容性以官方 Release InformationSupported Erlang Versions 为准,升级前建议阅读发行说明并在维护窗口执行 dnf update