在基于 RPM 的 Linux 上安装 (RHEL, CentOS Stream, Fedora, Amazon Linux 2023)
概述
本指南涵盖了在基于 RPM 的 Linux (Red Hat Enterprise Linux, CentOS Stream, Fedora) 上安装 RabbitMQ。
标准 RPM 发行版仓库中包含的版本可能落后于最新的 RabbitMQ 版本,并且可能提供已经停止支持的 RabbitMQ 版本。
RabbitMQ 团队制作了自己的 RPM 软件包,并使用一组 *.rabbitmq.com
上的仓库镜像 分发它们。
安装这些 RPM 有两种方法
本指南涵盖的一些主题包括
- 支持的发行版
- 从
*.rabbitmq.com
上的 dnf/yum 镜像仓库安装软件包 - 如何安装最新的受支持的 Erlang/OTP 版本
- 软件包依赖项
- 权限要求
- 如何管理服务(启动、停止和获取其状态)
- 如何检查节点和服务日志
- RabbitMQ RPM 软件包的直接下载链接
等等。
支持的发行版
RabbitMQ 在几个主要的基于 RPM 的发行版上受支持,这些发行版仍由其主要供应商或开发人员组积极维护。
请注意,现代版本的 Erlang 可能与较旧的发行版(例如,三到四年以上的版本)不兼容,或者在较旧的发行版或 OS 内核版本上几乎或完全没有经过测试就发布。
较旧的发行版也可能缺少足够新的 OpenSSL 版本。支持的 Erlang 版本不能在不提供 OpenSSL 1.1 作为系统库的发行版上使用。CentOS 7 和旧于 26 的 Fedora 版本就是此类发行版的示例。
目前,受支持的基于 RPM 的发行版列表包括
- Fedora 39 到 41
- CentOS Stream 9.x
- RedHat Enterprise Linux 9.x 和 8.x(完全支持的版本)
- Amazon Linux 2023
- Rocky Linux 9.x 和 8.x(支持的版本)
- Alma Linux 9.x 和 8.x(支持的版本)
- Oracle Linux 9.x 和 8.x(仅限最新次要版本)
如果满足依赖项,这些软件包可能在其他基于 RPM 的发行版上工作,但它们的测试和支持是在尽力而为的基础上完成的。
用户权限要求
RabbitMQ RPM 软件包将需要 sudo
权限才能安装和管理。在 sudo
不可用的环境中,请考虑使用通用二进制构建。
安装 Erlang
在安装 RabbitMQ 之前,您必须安装受支持版本的 Erlang/OTP。标准的 Red Hat、CentOS Stream 和 CentOS 衍生仓库提供的 Erlang 版本通常已过时,不能用于运行最新的 RabbitMQ 版本。
在基于 RPM 的发行版上有三个现代 Erlang 的替代来源
- RabbitMQ 团队制作了一个软件包,该软件包被精简为仅提供运行 RabbitMQ 所需的组件。这是推荐的选项。
- Fedora 提供了最新的 Erlang 软件包
- Erlang Solutions 生产的软件包通常相当新,并且涉及安装可能过多的依赖项列表
来自 RabbitMQ 的零依赖 Erlang
用于运行 RabbitMQ 的零依赖 Erlang RPM 软件包可以从 GitHub 的直接下载以及 Yum 仓库安装,如其 README 中所述。
顾名思义,该软件包剥离了一些对于运行 RabbitMQ 非必要的 Erlang 模块和依赖项。
软件包依赖项
使用 Yum 安装时,只要兼容版本可用,Erlang/OTP 以外的所有依赖项都应自动解析和安装。如果不是这种情况,则必须手动安装依赖软件包。
但是,当通过 yum
安装本地 RPM 文件时,必须手动安装依赖项。依赖项是
erlang
:可以从多个仓库安装受支持的 Erlang 版本logrotate
使用 Cloudsmith 镜像 dnf/yum 仓库安装
为什么本节讨论镜像?开源 RabbitMQ 发布基础设施将软件包发布到名为 Cloudsmith 的服务。
从那里,软件包被分发到欧盟和北美地区的两个镜像仓库。与 Cloudsmith 帐户不同,这些镜像仓库具有显著更高的流量配额,并且从它们下载不会因当月超出配额而被阻止。
请使用这些镜像,而不是直接从 Cloudsmith 安装软件包。
本节的其余部分将演示如何设置仓库文件,以从 *.rabbitmq.com
镜像之一安装 RabbitMQ 和 Erlang。
导入签名密钥
Yum 将验证它安装的任何软件包的签名,因此该过程的第一步是导入签名密钥
## primary RabbitMQ signing key
rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
## modern Erlang repository
rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key'
## RabbitMQ server repository
rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'
为 RabbitMQ 和现代 Erlang 添加 Yum 仓库
为了使用 Yum 仓库,必须在 /etc/yum.repos.d/
目录下添加一个 .repo
文件(例如 rabbitmq.repo
)。
仓库文件的内容在不同的发行版系列之间略有不同。请确保使用下面的适当选项卡。
这些仓库镜像仅提供 64 位 x86 (amd64
) Erlang 软件包。64 位 ARM (aarch64
) Erlang 软件包必须从 GitHub 下载,并使用 rpm
直接安装,如零依赖 Erlang RPM 软件包 README 中所述。
文件的内容在不同的发行版系列之间略有不同
- 最新发行版:现代 Fedora 版本、Red Hat 9、CentOS Stream 9、Rocky Linux 9、Alma Linux 9
- 较旧的发行版:RHEL 8、Rocky Linux 8、Alma Linux 8、Amazon Linux 2023、较旧的 Fedora 版本
- 现代 Fedora 版本、Red Hat 9、CentOS Stream 9、Rocky Linux 9、Amazon Linux 2023、Oracle Linux 9、Alma Linux 9
- RHEL 8、Rocky Linux 8、Alma Linux 8、Oracle Linux 8、较旧的 Fedora 版本
以下示例设置了一个仓库,该仓库将从 Cloudsmith 镜像安装 RabbitMQ 及其 Erlang 依赖项,并以 RHEL 9、CentOS Stream 9、Amazon Linux 2023、现代 Fedora 版本、Rocky Linux 9、Alma Linux 9、Oracle Linux 9 为目标。
这些仓库镜像仅提供 64 位 x86 (amd64
) Erlang 软件包。
# In /etc/yum.repos.d/rabbitmq.repo
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el9
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
https://yum2.rabbitmq.com/erlang/el/9/$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-el9-noarch
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch
https://yum2.rabbitmq.com/erlang/el/9/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
[modern-erlang-source]
name=modern-erlang-el9-source
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/SRPMS
https://yum2.rabbitmq.com/erlang/el/9/SRPMS
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
##
## RabbitMQ Server
##
[rabbitmq-el9]
name=rabbitmq-el9
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch
https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
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-el9-noarch]
name=rabbitmq-el9-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
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-el9-source]
name=rabbitmq-el9-source
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/SRPMS
https://yum1.rabbitmq.com/rabbitmq/el/9/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
gpgcheck=0
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
以下示例设置了一个仓库,该仓库将从 Cloudsmith 镜像安装 RabbitMQ 及其 Erlang 依赖项,并以 RHEL 8、Rocky Linux 8、Alma Linux 8 为目标。相同的仓库定义可以被较旧的 Fedora 版本使用。
这些仓库镜像仅提供 64 位 x86 (amd64
) Erlang 软件包。
# In /etc/yum.repos.d/rabbitmq.repo
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el8
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
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
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
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
[modern-erlang-source]
name=modern-erlang-el8-source
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/8/SRPMS
https://yum2.rabbitmq.com/erlang/el/8/SRPMS
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
##
## 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
# Cloudsmith's repository key and RabbitMQ package signing key
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
# Cloudsmith's repository key and RabbitMQ package signing key
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-source]
name=rabbitmq-el8-source
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/8/SRPMS
https://yum1.rabbitmq.com/rabbitmq/el/8/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
gpgcheck=0
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
使用 dnf (yum) 安装软件包
更新软件包元数据
dnf update -y
接下来,从标准仓库安装依赖项
## install these dependencies from standard OS repositories
dnf install -y logrotate
最后,安装现代 Erlang 和 RabbitMQ
## install RabbitMQ and zero dependency Erlang
dnf install -y erlang rabbitmq-server
基于 RPM 的发行版中的软件包版本锁定
yum 版本锁定插件可用于防止意外的软件包升级。使用它会带来使系统在更新方面落后的风险,包括重要的错误修复和安全补丁。
使用 rpm 和直接下载
在下载服务器软件包后,以 'root' 身份发出以下命令
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
## install these dependencies from standard OS repositories
dnf install -y logrotate
# The RabbitMQ RPM package is suitable for both RHEL 9 (modern) and RHEL 8-based (older) distributions
dnf install -y rabbitmq-server-4.1.0-1.el8.noarch.rpm
RabbitMQ 公共签名密钥也可以从 rabbitmq.com 下载
rpm --import https://rabbitmq.cn/rabbitmq-release-signing-key.asc
## install these dependencies from standard OS repositories
dnf install -y logrotate
# The RabbitMQ RPM package is suitable for both RHEL 9 (modern) and RHEL 8-based (older) distributions
dnf install -y rabbitmq-server-4.1.0-1.el8.noarch.rpm
如何清除本地 dnf 缓存
在某些罕见情况下,即使在运行 dnf update
后,RPM 仓库中可用的新版本也不会对 dnf install
可见。
在这种情况下,可能需要清除本地缓存
dnf clean metadata
dnf clean dbcache
dnf clean all
清除缓存后,dnf
将必须从所有仓库(包括发行版的标准仓库)重新下载所有元数据。这可能需要一些时间。
直接下载
在某些情况下,手动下载和安装软件包可能更容易。软件包可以从 GitHub 下载。
描述 | 下载 | 签名 |
---|---|---|
RPM,适用于 Fedora 38+、RHEL Linux 8.x 和 9.x、CentOS Stream 9、Rocky Linux 9、Alma Linux 9、Amazon Linux 2023 | rabbitmq-server-4.1.0-1.el8.noarch.rpm | 签名 |
运行 RabbitMQ 服务器
启动服务器
默认情况下,安装 RabbitMQ 服务器软件包时,服务器不会作为守护程序启动。要在系统启动时默认启动守护程序,请以管理员身份运行
systemctl enable rabbitmq-server
作为管理员,像往常一样启动和停止服务器,例如使用 systemctl
systemctl start rabbitmq-server
systemctl status rabbitmq-server
systemctl stop rabbitmq-server
配置 RabbitMQ
在大多数系统中,节点应该能够使用所有默认设置启动和运行。请参阅配置指南以了解更多信息,并参阅部署指南以获取超出开发环境的指南。
注意:节点设置为以系统用户 rabbitmq
身份运行。如果更改了节点数据库或日志的位置,则文件和目录必须归此用户所有。
RabbitMQ 节点绑定到端口(打开服务器 TCP 套接字),以便接受客户端和 CLI 工具连接。其他进程和工具(如 SELinux)可能会阻止 RabbitMQ 绑定到端口。发生这种情况时,节点将无法启动。有关更多详细信息,请参阅网络指南。
默认用户访问
代理创建了一个用户 guest
,密码为 guest
。未配置的客户端通常将使用这些凭据。默认情况下,这些凭据只能在作为 localhost 连接到代理时使用,因此您需要先采取措施才能从任何其他机器连接。
有关如何创建更多用户和删除 guest
用户的信息,请参阅有关访问控制的文档。
控制 Linux 上的系统限制
运行生产工作负载的 RabbitMQ 安装可能需要调整系统限制和内核参数,以便处理大量并发连接和队列。需要调整的主要设置是最大打开文件数,也称为 ulimit -n
。许多操作系统上的默认值对于消息代理来说太低了(在多个 Linux 发行版上为 1024
)。我们建议在生产环境中为用户 rabbitmq
允许至少 65536 个文件描述符。4096 应该足以满足许多开发工作负载。
有两个限制在起作用:OS 内核允许的最大打开文件数 (fs.file-max
) 和每个用户的限制 (ulimit -n
)。前者必须高于后者。
使用 systemd(最新的 Linux 发行版)
在使用 systemd 的发行版上,OS 限制通过 /etc/systemd/system/rabbitmq-server.service.d/limits.conf
中的配置文件控制。例如,要将最大打开文件句柄限制 (nofile
) 设置为 64000
[Service]
LimitNOFILE=64000
如果 LimitNOFILE
设置为高于 65536 的值,则必须相应地更新 ERL_MAX_PORTS
环境变量,以增加运行时限制。
请参阅 systemd 文档,以了解有关支持的限制和其他指令的信息。
使用 Docker
要为 Docker 容器配置内核限制,请使用 Docker 守护程序配置文件中的 "default-ulimits"
键。该文件必须安装在 Docker 主机上的 /etc/docker/daemon.json
中
{
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 64000,
"Soft": 64000
}
}
}
如果上述限制设置为高于 65536 的值,则必须相应地更新 ERL_MAX_PORTS
环境变量,以增加运行时限制。
不使用 systemd(较旧的 Linux 发行版)
在不使用 systemd 的发行版上,调整 RabbitMQ 每个用户的限制的最直接方法是编辑 /etc/default/rabbitmq-server
(由 RabbitMQ Debian 软件包提供)或 rabbitmq-env.conf,以在服务启动之前调用 ulimit
。
ulimit -S -n 64000
此 soft
限制不能高于 hard
限制(在许多发行版中默认为 4096)。可以通过 /etc/security/limits.conf
增加 hard 限制。这也需要启用 pam_limits.so 模块并重新登录或重启。请注意,无法更改正在运行的 OS 进程的限制。
如果上述限制设置为高于 65536 的值,则必须相应地更新 ERL_MAX_PORTS
环境变量,以增加运行时限制。
有关使用 sysctl
控制 fs.file-max
的更多信息,请参阅优秀的 Riak 关于打开文件限制调整的指南。
验证限制
RabbitMQ 管理 UI 在“概述”选项卡上显示可供其使用的文件描述符数量。
rabbitmq-diagnostics status
包括相同的值。
以下命令
cat /proc/$RABBITMQ_BEAM_PROCESS_PID/limits
可用于显示正在运行的进程的有效限制。$RABBITMQ_BEAM_PROCESS_PID
是运行 RabbitMQ 的 Erlang VM 的 OS PID,由 rabbitmq-diagnostics status
返回。
配置管理工具
配置管理工具(例如 Chef、Puppet、BOSH)提供系统限制调整方面的帮助。我们的开发人员工具指南列出了相关的模块和项目。
管理服务
要启动和停止服务器,请使用 service
工具。服务名称为 rabbitmq-server
# stop the local node
sudo service rabbitmq-server stop
# start it back
sudo service rabbitmq-server start
service rabbitmq-server status
将报告 systemd(或类似的服务管理器)观察到的服务状态
# check on service status as observed by service manager
sudo service rabbitmq-server status
它将产生类似于以下的输出
Redirecting to /bin/systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/rabbitmq-server.service.d
└─limits.conf
Active: active (running) since Wed 2021-05-22 10:21:32 UTC; 25s ago
Main PID: 957 (beam.smp)
Status: "Initialized"
CGroup: /system.slice/rabbitmq-server.service
├─ 957 /usr/lib/erlang/erts-10.2/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- ...
├─1411 /usr/lib/erlang/erts-10.2/bin/epmd -daemon
├─1605 erl_child_setup 400000
├─2860 inet_gethost 4
└─2861 inet_gethost 4
Aug 26 10:21:30 localhost.localdomain rabbitmq-server[957]: ## ##
Aug 26 10:21:30 localhost.localdomain rabbitmq-server[957]: ## ## RabbitMQ 4.0.9. Copyright (c) 2005-2025 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
Aug 26 10:21:30 localhost.localdomain rabbitmq-server[957]: ########## Licensed under the MPL 2.0. Website: https://rabbitmq.cn/
Aug 26 10:21:30 localhost.localdomain rabbitmq-server[957]: ###### ##
Aug 26 10:21:30 localhost.localdomain rabbitmq-server[957]: ########## Logs: /var/log/rabbitmq/rabbit@localhost.log
Aug 26 10:21:30 localhost.localdomain rabbitmq-server[957]: /var/log/rabbitmq/rabbit@localhost_upgrade.log
Aug 26 10:21:30 localhost.localdomain rabbitmq-server[957]: Starting broker...
Aug 26 10:21:32 localhost.localdomain rabbitmq-server[957]: systemd unit for activation check: "rabbitmq-server.service"
Aug 26 10:21:32 localhost.localdomain systemd[1]: Started RabbitMQ broker.
Aug 26 10:21:32 localhost.localdomain rabbitmq-server[957]: completed with 6 plugins.
rabbitmqctl
、rabbitmq-diagnostics
和其他 CLI 工具 将在 PATH
中可用,并且可以由启用 sudo
的用户调用
# checks if the local node is running and CLI tools can successfully authenticate with it
sudo rabbitmq-diagnostics ping
# prints enabled components (applications), TCP listeners, memory usage breakdown, alarms
# and so on
sudo rabbitmq-diagnostics status
# prints cluster membership information
sudo rabbitmq-diagnostics cluster_status
# prints effective node configuration
sudo rabbitmq-diagnostics environment
如果没有任何节点正在运行,则所有 rabbitmqctl
命令都将报告错误。请参阅CLI 工具和监控指南以了解更多信息。
日志文件和管理
服务器日志可以在可配置的目录下找到,当通过 Linux 软件包管理器安装 RabbitMQ 时,该目录通常默认为 /var/log/rabbitmq
。
RABBITMQ_LOG_BASE
可用于覆盖日志目录位置。
假设是基于 systemd
的发行版,可以使用以下命令检查系统服务日志
journalctl --system
这需要超级用户权限。可以过滤其输出以将其缩小到 RabbitMQ 特定的条目
sudo journalctl --system | grep rabbitmq
输出将类似于以下内容
Aug 26 11:03:04 localhost rabbitmq-server[968]: ## ##
Aug 26 11:03:04 localhost rabbitmq-server[968]: ## ## RabbitMQ 4.0.9. Copyright (c) 2005-2025 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
Aug 26 11:03:04 localhost rabbitmq-server[968]: ########## Licensed under the MPL 2.0. Website: https://rabbitmq.cn/
Aug 26 11:03:04 localhost rabbitmq-server[968]: ###### ##
Aug 26 11:03:04 localhost rabbitmq-server[968]: ########## Logs: /var/log/rabbitmq/rabbit@localhost.log
Aug 26 11:03:04 localhost rabbitmq-server[968]: /var/log/rabbitmq/rabbit@localhost_upgrade.log
Aug 26 11:03:04 localhost rabbitmq-server[968]: Starting broker...
Aug 26 11:03:05 localhost rabbitmq-server[968]: systemd unit for activation check: "rabbitmq-server.service"
Aug 26 11:03:06 localhost rabbitmq-server[968]: completed with 6 plugins.
日志轮转
代理始终附加到日志文件,因此保留了完整的日志历史记录。
logrotate 是日志文件轮转和压缩的推荐方法。默认情况下,软件包将设置 logrotate
以每周在默认 /var/log/rabbitmq
目录中找到的文件上运行。轮转配置可以在 /etc/logrotate.d/rabbitmq-server
中找到。