温馨提示×

rabbitmq在centos上的配置步骤是什么

小樊
36
2025-11-27 19:28:08
栏目: 智能运维

在 CentOS 上配置 RabbitMQ 的标准步骤

以下步骤适用于 CentOS 7/8,涵盖从安装依赖到启用管理界面与远程访问的完整流程,并给出常见注意事项与排错要点。


一 准备与安装

  • 更新系统并安装必要工具
    • 执行:sudo yum update -y
  • 添加 Erlang 仓库并安装(RabbitMQ 依赖 Erlang)
    • 仓库示例(CentOS 7 x86_64):
      sudo tee /etc/yum.repos.d/erlang.repo <<EOF
      [erlang-repo]
      name=Erlang Repository
      baseurl=https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/
      repo_gpgcheck=1
      gpgcheck=1
      enabled=1
      gpgkey=https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/erlang.gpg
      EOF
      
    • 安装:sudo yum install -y erlang
  • 添加 RabbitMQ 仓库并安装服务器
    • 仓库示例(CentOS 7):
      sudo tee /etc/yum.repos.d/rabbitmq.repo <<EOF
      [rabbitmq-server]
      name=RabbitMQ Repository
      baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/\$basearch
      repo_gpgcheck=1
      gpgcheck=1
      enabled=1
      gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
      EOF
      
    • 安装:sudo yum install -y rabbitmq-server
  • 说明
    • 不同 CentOS 版本(如 8)请选择对应仓库路径中的版本目录(如将 el/7 替换为 el/8)。

二 启动与基础验证

  • 启动服务并设置开机自启
    • 执行:sudo systemctl start rabbitmq-server
    • 执行:sudo systemctl enable rabbitmq-server
    • 检查状态:sudo systemctl status rabbitmq-server
  • 启用管理插件(可选,便于 Web 管理与监控)
    • 执行:sudo rabbitmq-plugins enable rabbitmq_management
  • 开放防火墙端口(如启用防火墙)
    • 执行:sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp
    • 执行:sudo firewall-cmd --permanent --zone=public --add-port=15672/tcp
    • 执行:sudo firewall-cmd --reload
  • 访问管理界面
    • 地址:http://<服务器IP>:15672
    • 默认账户:guest/guest(默认仅允许本机访问,见下一节远程访问配置)。

三 常用配置与用户管理

  • 创建管理员用户与虚拟主机(推荐做法)
    • 新建 vhost:sudo rabbitmqctl add_vhost my_vhost
    • 新建用户:sudo rabbitmqctl add_user myuser mypassword
    • 赋权:sudo rabbitmqctl set_permissions -p my_vhost myuser ".*" ".*" ".*"
    • 设置标签:sudo rabbitmqctl set_user_tags myuser administrator
  • 远程访问与安全
    • 方式一(推荐):使用自建管理员账户登录管理界面(见上一步),避免使用 guest 远程登录。
    • 方式二:允许 guest 远程访问(不推荐生产环境)
      • 新版配置(rabbitmq.conf):设置 loopback_users.guest = false
      • 旧版配置(rabbitmq.config):设置 {loopback_users, []},
  • 配置文件与路径
    • 新版配置路径与格式:/etc/rabbitmq/rabbitmq.conf(key=value)
    • 旧版配置路径与格式:/etc/rabbitmq/rabbitmq.config(Erlang 元组)
    • 常用参数示例:
      • listeners.tcp.default = 5672(AMQP 端口)
      • log.file.level = info(日志级别)
      • default_user / default_pass(默认账户,建议生产环境修改或禁用)。

四 常见问题与排错要点

  • 节点不可达或 CLI 认证失败
    • 现象:Error: unable to perform an operation on node 'rabbit@hostname'
    • 排查:检查 主机名解析/etc/hosts防火墙Erlang Cookie 一致性;必要时使用 rabbitmqctl status 与日志定位。
  • 管理界面访问被拒绝
    • 原因:guest 默认仅允许 localhost 访问。
    • 解决:创建新管理员账户并赋权,或按上一节开启 guest 的远程访问(不推荐)。
  • 配置文件不生效
    • 检查是否使用了正确的文件名与路径(新版 rabbitmq.conf 优先于旧版 rabbitmq.config);两个文件同时存在时,旧版会被优先读取。
  • SELinux 导致启动失败
    • 现象:Job for rabbitmq-server.service failed
    • 排查:临时 setenforce 0 验证;生产环境建议按需配置 SELinux 策略而非直接禁用。

0