在基于 RPM 的 Linux 上安装 (RHEL、CentOS Stream、Fedora、Amazon Linux 2023)
概述
本指南介绍如何在基于 RPM 的 Linux (Red Hat Enterprise Linux、CentOS Stream、Fedora) 上安装 RabbitMQ。
除了 Fedora,标准基于 RPM 的发行版存储库中包含的版本可能比 最新 RabbitMQ 版本 落后很多个版本,并且可能提供已经 超出支持范围 的 RabbitMQ 版本。
RabbitMQ 团队会制作我们自己的 RPM 软件包,并通过 Cloudsmith 镜像 发布。
安装这些 RPM 有两种方法
- 使用 Yum 存储库 (强烈推荐此选项) 从 Cloudsmith.io 镜像安装软件包
- 下载 软件包并使用
rpm
安装它。此选项将要求手动安装所有 软件包依赖项,并使升级更加困难。
本指南中涵盖的一些主题包括
- 支持的发行版
- 从 Cloudsmith.io 镜像上的 Yum 存储库安装软件包
- 如何安装 最新支持的 Erlang/OTP 版本
- 软件包依赖项
- 权限要求
- 如何 管理服务 (启动、停止和获取其状态)
- 如何 检查节点和服务日志
- 直接下载链接,用于获取 RabbitMQ RPM 软件包
等等。
支持的发行版
RabbitMQ 支持几个主要的基于 RPM 的发行版,这些发行版仍然由其主要供应商或开发人员组积极维护。
请注意,现代版本的 Erlang 可能与较旧的发行版 (例如,旧于三到四年的发行版) 不兼容,或者在较旧的发行版或 OS 内核版本上没有太多或根本没有测试。
较旧的发行版也可能缺少足够新的 OpenSSL 版本。 支持的 Erlang 版本 **不能用于不提供 OpenSSL 1.1** 作为系统库的发行版。CentOS 7 和旧于 26 的 Fedora 版本就是此类发行版的例子。
目前,支持的基于 RPM 的发行版列表包括
- Fedora 38 到 40
- 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 存储库安装,如其自述文件中所述。
顾名思义,该软件包会剥离运行 RabbitMQ 不必要的 Erlang 模块和依赖项。
软件包依赖项
使用 Yum 安装时,只要有兼容的版本可用,Erlang/OTP 以外的所有依赖项都应自动解析和安装。如果情况并非如此,则必须手动安装依赖项软件包。
但是,当通过 yum
安装本地 RPM 文件时,必须手动安装依赖项。依赖项包括
erlang
:可以从多个 存储库 安装 支持的 Erlang 版本socat
logrotate
使用 Cloudsmith 镜像 Yum 存储库安装
从 Cloudsmith 和该存储库的镜像提供一个包含 RabbitMQ 软件包的 Yum 存储库。
本节的其余部分将演示如何设置一个存储库文件,该文件将使用镜像。Cloudsmith 上的存储库受流量配额限制,但镜像不受限制。
安装 RabbitMQ 和 Cloudsmith 签名密钥
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 软件包。必须从 GitHub 下载 64 位 ARM (aarch64
) Erlang 软件包,并如 零依赖项 Erlang RPM 软件包自述文件 中所述,直接使用 rpm
安装。
文件内容在不同发行版系列之间略有不同
- 最新发行版:现代 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 socat 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 socat logrotate
# The RabbitMQ RPM package is suitable for both RHEL 9 (modern) and RHEL 8-based (older) distributions
dnf install -y rabbitmq-server-4.0.2-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 socat logrotate
# The RabbitMQ RPM package is suitable for both RHEL 9 (modern) and RHEL 8-based (older) distributions
dnf install -y rabbitmq-server-4.0.2-1.el8.noarch.rpm
直接下载
在某些情况下,直接下载软件包并手动安装可能更容易。该软件包可以从 GitHub 下载。
描述 | 下载 | 签名 |
---|---|---|
适用于 Fedora 38+、RHEL Linux 8.x 和 9.x、CentOS Stream 9、Rocky Linux 9、Alma Linux 9 和 Amazon Linux 2023 的 RPM 包 | rabbitmq-server-4.0.2-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 应该足够了。
这里有两个限制:操作系统内核允许打开文件的最大数量(fs.file-max
)和每个用户的限制(ulimit -n
)。前者必须大于后者。
使用 systemd(较新的 Linux 发行版)
在使用 systemd 的发行版上,操作系统限制通过 /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
提高。这也需要启用 pam_limits.so 模块并重新登录或重新启动。请注意,无法更改正在运行的操作系统进程的限制。
如果上述限制设置为高于 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 的操作系统 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 3.13.7. Copyright (c) 2005-2024 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/[email protected]
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 3.13.7. Copyright (c) 2005-2024 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/[email protected]
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
中找到。