温馨提示×

Linux中RabbitMQ配置步骤是什么

小樊
42
2025-12-06 18:46:52
栏目: 智能运维

Linux 中 RabbitMQ 配置步骤

一 准备与安装

  • 选择发行版对应的方式安装 ErlangRabbitMQ,并保持版本兼容(参考官方兼容矩阵)。
  • Debian/Ubuntu 示例:sudo apt update && sudo apt install -y erlang rabbitmq-server
  • RHEL/CentOS 7 示例:sudo yum install -y erlang rabbitmq-server
  • RHEL 9/AlmaLinux 9/Rocky Linux 9 推荐方式:
    • 安装依赖:sudo dnf install -y socat curl
    • 添加仓库:
      curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
      curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
    • 安装:sudo dnf install -y erlang rabbitmq-server
  • 启动并设为开机自启:sudo systemctl enable --now rabbitmq-server;检查状态:sudo systemctl status rabbitmq-server

二 核心配置

  • 配置文件位置与格式
    • 新版优先使用 /etc/rabbitmq/rabbitmq.conf(sysctl 风格,示例:key = value)。
    • 旧版或高级项可用 /etc/rabbitmq/advanced.config(Erlang term 风格,示例:[{rabbit, […] }.])。
    • 环境变量通过 /etc/rabbitmq/rabbitmq-env.conf 设置(如 RABBITMQ_NODENAMERABBITMQ_NODE_PORTRABBITMQ_CONFIG_FILERABBITMQ_LOGS 等)。
  • 常见配置示例(写入 rabbitmq.conf)
    • 监听端口:listeners.tcp.default = 5672
    • 管理界面端口:management.tcp.port = 15672
    • 内存高水位线:vm_memory_high_watermark.relative = 0.4(或 vm_memory_high_watermark.absolute = 2GB
    • 磁盘低水位线:disk_free_limit.absolute = 5GB
  • 目录与日志(通过 rabbitmq-env.conf 或主配置)
    • RABBITMQ_MNESIA_BASE = /data/rabbitmq/mnesia
    • RABBITMQ_LOG_BASE = /data/rabbitmq/log
  • 应用配置后需重启:sudo systemctl restart rabbitmq-server;查看状态与日志:sudo rabbitmqctl status,日志默认在 /var/log/rabbitmq/

三 用户与权限

  • 启用管理插件:sudo rabbitmq-plugins enable rabbitmq_management(管理界面监听 15672)。
  • 安全建议:默认 guest 用户仅允许 localhost 访问,生产环境应创建管理员用户。
  • 创建管理员与授权示例:
    • 新增用户:sudo rabbitmqctl add_user admin StrongPass!
    • 设置标签:sudo rabbitmqctl set_user_tags admin administrator
    • 授予默认虚拟主机权限:sudo rabbitmqctl set_permissions -p / admin “." ".” “.*”
  • 如需允许远程使用 guest(不推荐):创建 /etc/rabbitmq/rabbitmq.config
    • [{rabbit, [{loopback_users, []}]}].
    • 并修正属主:chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config。

四 防火墙与端口

  • 开放必要端口(示例为 firewalld):
    • AMQP:5672/tcp
    • 管理界面:15672/tcp
    • Erlang 分布式:25672/tcp(集群/rabbitmqctl 需要)
    • 命令:
      sudo firewall-cmd --permanent --add-port=5672/tcp
      sudo firewall-cmd --permanent --add-port=15672/tcp
      sudo firewall-cmd --permanent --add-port=25672/tcp
      sudo firewall-cmd --reload
  • 其他可能用到的端口(启用相应插件时):4369/epmd61613-61614/STOMP1883-8883/MQTT

五 验证与常见问题

  • 访问管理界面:打开浏览器访问 http://服务器IP:15672,使用创建的管理员账户登录。
  • 客户端连通性:使用 AMQP 客户端连接 5672 端口,确保网络与防火墙策略正确。
  • 常用排障:
    • 查看服务状态:sudo systemctl status rabbitmq-server
    • 查看节点状态与集群信息:sudo rabbitmqctl status
    • 查看日志:tail -f /var/log/rabbitmq/rabbit@*.log
  • 常见注意事项:
    • Erlang 与 RabbitMQ 版本必须匹配(参考官方说明)。
    • 修改 rabbitmq.conf 后需重启服务。
    • 生产环境避免使用默认 guest 远程登录,按最小权限原则创建专用账户与 vhost

0