Rocky8 部署单机RabbitMQ
一、RabbitMQ 安装
RabbitMQ 依赖 Erlang 环境,需按顺序完成依赖安装与服务部署,均为最新版本。
1. 安装 Erlang 环境
# 配置 Erlang YUM 源
curl -fsSL https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | bash
# 安装并验证
dnf install -y erlang
erl -version # 输出版本即成功
2. 安装 RabbitMQ 服务
# 配置 RabbitMQ YUM 源
curl -fsSL https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | bash
# 安装并启动服务
dnf install -y rabbitmq-server
systemctl start rabbitmq-server # 启动服务
systemctl enable rabbitmq-server # 开机自启
systemctl status rabbitmq-server # 验证状态为 active (running)
3. 启用管理界面(可选)
rabbitmq-plugins enable rabbitmq_management # 启用插件
systemctl restart rabbitmq-server # 重启生效
4. 开放核心端口(无防火墙可忽略)
# 开放 AMQP 端口(5672)和管理界面端口(15672)
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --reload # 刷新规则
firewall-cmd --list-ports # 验证端口开放
二、用户管理核心操作
包含用户创建、密码修改、权限查询三类高频操作,默认 guest 用户仅支持本地访问,需创建自定义管理员用户。
1. 创建用户(以 shunt 为例)
# 格式:rabbitmqctl add_user 用户名 密码
rabbitmqctl add_user shunt Shunt@123 # 密码建议含字母+数字+特殊符号
2. 修改用户密码(以 admin 为例)
# 格式:rabbitmqctl change_password 用户名 新密码
rabbitmqctl change_password admin Admin@654 # 无需原密码,直接强制修改
3. 查看用户信息与标签
rabbitmqctl list_users # 查看所有用户及权限标签
# 输出示例:user tags,administrator 为超级管理员标签
三、用户权限配置与查询
权限分为「标签权限」(管理范围)和「资源权限」(操作范围),需同时配置确保权限完整。
1. 配置用户标签(授予监控权限)
# 格式:rabbitmqctl set_user_tags 用户名 标签
rabbitmqctl set_user_tags shunt monitoring # 超级管理员标签,拥有最高权限
常见标签:administrator(超级管理员)、management(普通管理)、monitoring(监控)。
2. 配置资源权限
# 格式:rabbitmqctl set_permissions -p 虚拟主机 用户名 配置权限 写权限 读权限
rabbitmqctl set_permissions -p / shunt ".*" ".*" ".*" # 授予默认虚拟主机全权限
3. 查询用户权限
# 查单个用户(精准)
rabbitmqctl list_user_permissions shunt
# 查所有用户(批量)
rabbitmqctl list_permissions
权限解读:".*" 表示全权限,分别对应配置(创建/删除资源)、写(发消息)、读(收消息)权限。
四、验证安装成功
1. 访问管理界面
打开浏览器,输入 http://服务器IP:15672(若修改端口则用自定义端口),使用创建的 admin 用户(或 guest 本地访问)登录,能正常进入界面即说明管理插件和端口配置生效。
2. 测试 AMQP 连接(可选)
使用 Python 客户端测试(需先安装 pika 库):
pip3 install pika
创建测试脚本 test_rabbitmq.py:
import pika
# 连接 RabbitMQ(替换为服务器IP、端口、用户名、密码)
connection = pika.BlockingConnection(
pika.ConnectionParameters(
host='服务器IP',
port=5672, # 或自定义端口
credentials=pika.PlainCredentials('admin', 'Admin@654')
)
)
channel = connection.channel()
# 创建队列
channel.queue_declare(queue='test_queue')
# 发送消息
channel.basic_publish(exchange='', routing_key='test_queue', body='Hello RabbitMQ!')
print("消息发送成功")
connection.close()
执行脚本,无报错且在管理界面的「Queues」中能看到 test_queue 及消息数,说明 AMQP 端口正常。
如下图:



浙公网安备 33010602011771号