鲲鹏ARM系统yum安装rabbitmq并附修改端口及配置,最后一键查看

首先是yum安装,如果没有yum请跳转到我搭建yum全过程。

bash 复制代码
 yum -y install  rabbitmq-server.aarch64

下面是我适配 RabbitMQ 3.7.23 的完整 rabbitmq.config 配置文件,(端口 8018 + 管理界面 15672),可以直接覆盖原文件即可,避免语法错误。


原配置文件全是注释,不用管他。

第一步:备份原有配置(重要)

先把旧配置备份,防止出错后无法恢复:

bash 复制代码
cp /etc/rabbitmq/rabbitmq.config /etc/rabbitmq/rabbitmq.config.bak

第二步:替换为新配置文件

执行以下命令,直接生成正确的配置文件:

bash 复制代码
cat > /etc/rabbitmq/rabbitmq.config << 'EOF'
[
  {rabbit, [
    %% 设置AMQP监听端口为8018(替代默认5672)
    {tcp_listeners, [8018]},
    %% 允许所有IP访问(不限制本地)
    {loopback_users, []},
    %% 数据持久化目录(和Docker里的./rabbitmq_data对应)
    {mnesia_dir, "/root/rabbitmq/rabbitmq_data"}
  ]},
  {rabbitmq_management, [
    %% 管理界面监听端口15672
    {listener, [{port, 15672}]}
  ]}
].
EOF

第三步:修复配置文件权限

确保 RabbitMQ 进程能读取配置:

bash 复制代码
chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config
chmod 644 /etc/rabbitmq/rabbitmq.config

第四步:创建数据目录并授权

bash 复制代码
mkdir -p /root/rabbitmq/rabbitmq_data
chown -R rabbitmq:rabbitmq /root/rabbitmq/rabbitmq_data

第五步:启用管理插件 + 重启服务

bash 复制代码
# 启用管理插件(解决15672端口不监听的问题)
rabbitmq-plugins enable rabbitmq_management

# 重启RabbitMQ服务使配置生效
systemctl restart rabbitmq-server

第六步:验证配置是否生效

  1. 检查服务状态:
bash 复制代码
systemctl status rabbitmq-server

看到 active (running) 说明服务启动正常。

  1. 检查端口监听:
bash 复制代码
ss -tlnp | grep beam

正常会输出:

复制代码
LISTEN 0      128         0.0.0.0:8018      0.0.0.0:*    users:(("beam.smp",pid=xxxx,fd=xx))
LISTEN 0      128         0.0.0.0:25672     0.0.0.0:*    users:(("beam.smp",pid=xxxx,fd=xx))
  1. 配置账号:
bash 复制代码
# 创建adm账号,密码xxxxxxx
rabbitmqctl add_user adm xxxxxxx
# 设置管理员权限
rabbitmqctl set_user_tags adm administrator
# 授权访问所有资源
rabbitmqctl set_permissions -p / adm ".*" ".*" ".*"
# 删除默认guest账号(可选,提升安全)
rabbitmqctl delete_user guest

下一步操作

  1. 启用管理插件

    bash 复制代码
    rabbitmq-plugins enable rabbitmq_management
  2. 重启服务

    bash 复制代码
    systemctl restart rabbitmq-server
  3. 再次检查端口

    bash 复制代码
    ss -tlnp | grep beam

    正常情况下,你会看到 15672 端口也被监听。


我整理了一个一键启用插件+重启服务+验证端口的脚本,直接复制执行就能解决管理界面端口(15672)未监听的问题。


一键执行脚本(复制到终端直接运行)

bash 复制代码
#!/bin/bash
# 1. 启用 RabbitMQ 管理插件
echo "=== 启用 RabbitMQ 管理插件 ==="
rabbitmq-plugins enable rabbitmq_management

# 2. 重启 RabbitMQ 服务
echo -e "\n=== 重启 RabbitMQ 服务 ==="
systemctl restart rabbitmq-server

# 3. 检查服务状态
echo -e "\n=== 检查 RabbitMQ 服务状态 ==="
systemctl status rabbitmq-server --no-pager

# 4. 检查端口监听情况(重点看 8018 和 15672)
echo -e "\n=== 检查端口监听情况 ==="
ss -tlnp | grep beam

# 5. 验证管理插件是否加载成功
echo -e "\n=== 验证管理插件状态 ==="
rabbitmq-plugins list | grep rabbitmq_management

执行步骤

  1. 把上面的脚本完整复制到你的服务器终端,按回车执行;
  2. 执行完成后,重点看这两个关键输出:
    • ss -tlnp | grep beam 里是否出现 801815672 两个端口;
    • rabbitmq-plugins listrabbitmq_management 前面是 [E*](表示已启用并加载)。

执行成功的预期效果

如果一切正常,你会看到类似以上截图的输出:


总结

  1. beam.smp 是 Erlang 进程名,不是运行用户,真正的运行用户是 rabbitmq
  2. 你的 8018 端口已生效,15672 端口未监听仅因为管理插件未启用;
相关推荐
茶杯梦轩1 天前
从零起步学习RabbitMQ || 第三章:RabbitMQ的生产者、Broker、消费者如何保证消息不丢失(可靠性)详解
分布式·后端·面试
回家路上绕了弯3 天前
深入解析Agent Subagent架构:原理、协同逻辑与实战落地指南
分布式·后端
用户8307196840823 天前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
用户8307196840825 天前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
初次攀爬者6 天前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
初次攀爬者8 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
让我上个超影吧9 天前
消息队列——RabbitMQ(高级)
java·rabbitmq
塔中妖9 天前
Windows 安装 RabbitMQ 详细教程(含 Erlang 环境配置)
windows·rabbitmq·erlang
断手当码农9 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
初次攀爬者9 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端