ubuntu

Ubuntu如何升级RabbitMQ到最新版

小樊
47
2025-10-31 23:24:57
栏目: 智能运维

Ubuntu升级RabbitMQ到最新版的完整步骤

1. 准备工作

1.1 备份关键数据

升级前务必备份RabbitMQ的配置文件和数据目录,防止升级过程中出现意外导致数据丢失:

sudo cp -r /etc/rabbitmq/ /etc/rabbitmq_backup/  # 备份配置文件
sudo cp -r /var/lib/rabbitmq/ /var/lib/rabbitmq_backup/  # 备份数据目录

1.2 检查Erlang版本兼容性

RabbitMQ依赖Erlang/OTP运行,不同版本的RabbitMQ对Erlang有严格要求(如RabbitMQ 3.12.x需要Erlang 25.x及以上)。通过以下命令查看当前Erlang版本:

erl -version

若版本不符合要求,需先升级Erlang(参考后续2. 安装/升级Erlang步骤)。

2. 安装/升级Erlang

RabbitMQ官方推荐通过其提供的APT源安装Erlang,以确保版本兼容性:

2.1 添加Erlang仓库密钥

curl -fsSL https://packagecloud.io/rabbitmq/erlang/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/com.rabbitmq.erlang.gpg

2.2 添加Erlang仓库

根据Ubuntu版本替换{distribution}(如22.04对应jammy,20.04对应focal):

echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.erlang.gpg] https://packagecloud.io/rabbitmq/erlang/ubuntu ${distribution} main" | sudo tee /etc/apt/sources.list.d/rabbitmq_erlang.list

2.3 安装Erlang

更新软件包列表并安装Erlang核心组件(erlang-baseerlang-sslerlang-nox):

sudo apt-get update
sudo apt-get install -y erlang-base erlang-ssl erlang-nox

验证Erlang版本是否符合RabbitMQ要求:

erl -version

3. 升级RabbitMQ

3.1 添加RabbitMQ官方APT源

替换{distribution}为Ubuntu版本代号(如22.04对应jammy):

echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.gpg] https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu ${distribution} main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

3.2 添加RabbitMQ仓库密钥

curl -fsSL https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/com.rabbitmq.gpg

3.3 更新软件包列表

sudo apt-get update

3.4 升级RabbitMQ

执行升级命令(-y自动确认依赖关系):

sudo apt-get install --only-upgrade rabbitmq-server -y

若需安装特定最新版本(如3.12.0),可通过apt-cache madison rabbitmq-server查看可用版本,再指定安装:

sudo apt-get install rabbitmq-server=3.12.0-1 -y

3.5 重启RabbitMQ服务

sudo systemctl restart rabbitmq-server

3.6 验证升级结果

检查RabbitMQ版本:

rabbitmqctl status | grep "rabbitmq_version"

访问管理界面(默认端口15672,需提前启用插件,见4. 配置管理插件)。

4. 配置管理插件(可选但推荐)

若需通过Web界面管理RabbitMQ,需启用rabbitmq_management插件:

sudo rabbitmq-plugins enable rabbitmq_management

默认情况下,guest用户仅能本地登录。若需远程访问,需创建新用户并修改配置:

# 创建管理员用户(替换用户名和密码)
sudo rabbitmqctl add_user admin your_password
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

# 允许guest用户远程登录(可选,若不需要可忽略)
echo "loopback_users.guest = false" | sudo tee -a /etc/rabbitmq/rabbitmq.conf
sudo systemctl restart rabbitmq-server

开放防火墙端口(若启用):

sudo ufw allow 15672/tcp  # 管理界面端口
sudo ufw allow 5672/tcp   # AMQP协议端口

注意事项

0
看了该问题的人还看了