https://www.rabbitmq.com/install-debian.html
RabbitMQ 包含在标准的 Debian 和 Ubuntu 存储库中。但是,包含的版本比最新的 RabbitMQ 版本落后很多版本,并且可能提供已经不受支持的 RabbitMQ 版本。
RabbitMQ 团队生产我们自己的 Debian 包,并使用 Cloudsmith
和PackageCloud
分发它们。
本指南的关键部分是
- 在 Debian 和 Ubuntu 上安装最新版本的 RabbitMQ的方法
- 支持的 Ubuntu 和 Debian 发行版
- 权限要求
- 使用 Cloudsmith存储库的快速启动安装片段
- 使用 PackageCloud和 Launchpad 存储库的快速启动安装片段
- 管理服务(启动、停止并获取其状态)
- 如何检查节点和服务日志
支持的 Erlang 版本将从 Ubuntu Launchpad 或 Cloudsmith.io 上的现代 Erlang apt 存储库之一提供。
那些寻找更详细的安装步骤描述的人应该参考
- 使用apt 和 Cloudsmith存储库手动安装
- 使用apt PackageCloud和 Launchpad 存储库手动安装
如何在 Debian 和 Ubuntu 上安装最新的 RabbitMQ
使用 Apt 安装
在 Debian 和 Ubuntu 上安装最新 RabbitMQ 有两个选项:
- 选项 A:在 Cloudsmith 上使用 apt 存储库(快速启动脚本)
- 选项 B:在 PackageCloud 和 Launchpad 上结合使用 apt 存储库(快速启动脚本)
这两个选项都将使用Cloudsmith
或 Launchpad
上的Erlang apt
存储库安装最新版本的 Erlang
。
手动使用 Dpkg
或者,可以手动下载软件包并使用dpkg -i
安装。此选项将需要手动安装所有 RabbitMQ 包依赖项(不推荐)。
支持的发行版
RabbitMQ 在几个主要的基于 Debian 的发行版上得到支持,这些发行版仍然受到其主要供应商或开发人员组的支持。
对于 Debian,这意味着 RabbitMQ 核心团队关注包的重点是基于 Debian 的发行版的当前和先前版本,即符合发行版 EOL 政策。
目前支持的基于 Debian 的发行版列表包括
- Ubuntu 18.04 到 22.10
- Debian Buster (10)、Bullseye (11) 和 Sid (“unstable”)
如果依赖性得到满足(例如,使用反向移植存储库) ,该软件包可以在其他基于 Debian 的发行版上工作,但它们的测试和支持是在尽力而为的基础上完成的。
在 Debian 和 Ubuntu 上从哪里获取最新的 Erlang 版本
RabbitMQ 需要 Erlang/OTP 才能运行。标准 Debian 和 Ubuntu 存储库中的 Erlang/OTP 包可能已经过时并且不受现代 RabbitMQ 版本的支持。
最新的 Erlang/OTP 发布系列可以从许多替代的 apt 存储库中获得:
Erlang 发布系列 | 提供它的 Apt 存储库 | 笔记 |
---|---|---|
25.x | - Launchpad 上来自 Team RabbitMQ的 Erlang 的 Debian 包 - Erlang 解决方案 - 来自 Cloudsmith.io 上的 Team RabbitMQ的 Erlang 的 Debian 包 |
从 3.10.0 开始支持,从3.11.0开始需要。请参阅Erlang 兼容性指南。 |
24.x | - Erlang 解决方案 - 来自 Cloudsmith.io 上的 Team RabbitMQ的 Erlang 的 Debian 包 |
从 3.8.16 开始支持。请参阅Erlang 兼容性指南。 |
本指南将重点介绍由 Team RabbitMQ在 Launchpad 和Cloudsmith.io 上维护的 Debian 存储库。
可以通过以下三种安装方式 RabbitMQ 服务
运行 RabbitMQ 服务器
启动服务器
安装 RabbitMQ 服务器包时,默认情况下服务器不会作为守护进程启动。要在系统启动时默认启动守护程序,请以管理员身份运行
作为管理员,像往常一样启动和停止服务器,例如使用服务:
配置 RabbitMQ
在大多数系统上,节点应该能够以所有默认值启动和运行。请参阅配置指南以了解更多信息,并参阅生产清单以了解开发环境以外的指南。
注意:节点设置为以系统用户rabbitmq运行。如果更改了节点数据库或日志的位置,则文件和目录必须归该用户所有。
RabbitMQ 节点绑定到端口(开放服务器 TCP 套接字)以接受客户端和 CLI 工具连接。其他进程和工具(如 SELinux)可能会阻止 RabbitMQ 绑定到端口。发生这种情况时,节点将无法启动。
CLI 工具、客户端库和 RabbitMQ 节点也打开连接(客户端 TCP 套接字)。防火墙可以阻止节点和 CLI 工具相互通信。确保可以访问以下端口:
- 4369:epmd,RabbitMQ 节点和 CLI 工具使用的对等发现服务
- 5672、5671:由不带和带 TLS 的 AMQP 0-9-1 和 1.0 客户端使用
- 25672:用于节点间和 CLI 工具通信(Erlang 分发服务器端口)并从动态范围分配(默认限制为单个端口,计算为 AMQP 端口 + 20000)。除非确实需要这些端口上的外部连接(例如集群使用联合或在子网外的机器上使用 CLI 工具),否则不应公开这些端口。有关详细信息,请参阅网络指南。
- 35672-35682:由 CLI 工具(Erlang 分发客户端端口)用于与节点通信,并从动态范围(计算为服务器分发端口 + 10000 到服务器分发端口 + 10010)进行分配。有关详细信息,请参阅网络指南。
- 15672:HTTP API客户端、管理 UI和rabbitmqadmin (仅当管理插件启用时)
- 61613、61614:不带和带 TLS 的STOMP 客户端(仅当启用STOMP 插件时)
- 1883、8883:如果启用了MQTT 插件,则不带和带 TLS 的MQTT 客户端
- 15674:STOMP-over-WebSockets 客户端(仅当启用Web STOMP 插件时)
- 15675:MQTT-over-WebSockets 客户端(仅当启用Web MQTT 插件时)
- 15692:Prometheus 指标(仅当启用Prometheus 插件时)
可以将RabbitMQ 配置 为使用不同的端口和特定的网络接口。
默认用户访问
broker 服务默认创建一个用户guest
密码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
:
请参阅 systemd 文档以了解支持的限制和其他指令。
在 /etc/systemd/system/rabbitmq-server.service.d/limits.conf
原因,在 /etc/systemd/system/rabbitmq-server.service
文件中也有提到:
在 Docker 环境下
为 Docker 配置内核限制,请使用 Docker 守护进程配置文件中的 “default-ulimits” 键。该文件必须安装在/etc/docker/daemon.json
的 Docker 主机上:
没有 systemd(较旧的 Linux 发行版)
在不使用 systemd 的发行版上调整 RabbitMQ 每个用户限制的最直接方法是编辑/etc/default/rabbitmq-server
(由 RabbitMQ Debian 软件包提供)或rabbitmq-env.conf
以在之前 调用ulimit
服务已启动。
这个软限制不能高于硬限制(在许多发行版中默认为 4096)。 可以通过 /etc/security/limits.conf
增加硬限制。这也需要启用pam_limits.so
模块并重新登录或重启。请注意,无法更改正在运行的操作系统进程的限制。
有关使用 sysctl
控制 fs.file-max
的更多信息 ,请参阅优秀的 Riak 打开文件限制调整指南。
验证限制
RabbitMQ 管理 UI在概述选项卡上显示可供其使用的文件描述符的数量。
包含相同的值。
以下命令
可用于显示正在运行的进程的有效限制。$RABBITMQ_BEAM_PROCESS_PID
是运行 RabbitMQ 的 Erlang VM 的操作系统 PID,由rabbitmq-diagnostics status
返回。
管理服务
要启动和停止服务器,请使用服务工具。服务名称是rabbitmq-server
:
service rabbitmq-server status 将报告 systemd(或类似服务管理器)观察到的服务状态:
它将产生类似这样的输出:
rabbitmqctl
、rabbitmq-diagnostics
和其他CLI 工具将在PATH
中可用,并且可以由启用sudo
的用户调用:
如果没有节点正在运行,所有rabbitmqctl命令都会报告错误。
日志文件和管理
服务器日志可以在可配置目录下找到,当通过 Linux 包管理器安装 RabbitMQ 时,该目录通常默认为/var/log/rabbitmq
。
RABBITMQ_LOG_BASE
变量可用于覆盖日志目录位置。
假设基于systemd的发行版,系统服务日志可以使用
这需要超级用户权限。可以过滤它的输出以将其缩小到特定于 RabbitMQ 的条目:
输出将类似于:
日志轮换
代理总是附加到日志文件,因此保留了完整的日志历史记录。
logrotate
是推荐的日志文件轮换和压缩方式。默认情况下,该包将设置logrotate以每周对位于默认 /var/log/rabbitmq
目录中的文件运行。旋转配置可以在/etc/logrotate.d/rabbitmq-server
中找到 。
账号配置
安装启动后其实还不能在其它机器访问,rabbitmq 默认的 guest 账号只能在本地机器访问, 如果想在其它机器访问必须配置其它账号
配置管理员账号
启动 rabbitmq 内置 web 插件, 管理 rabbitmq 账号等信息
服务重启成功后,访问地址:http://你的地址:15672
最后编辑:Jeebiz 更新时间:2025-04-24 19:03