Linux中RabbitMQ配置步骤是什么
小樊
42
2025-12-06 18:46:52
Linux 中 RabbitMQ 配置步骤
一 准备与安装
- 选择发行版对应的方式安装 Erlang 与 RabbitMQ,并保持版本兼容(参考官方兼容矩阵)。
- 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_NODENAME、RABBITMQ_NODE_PORT、RABBITMQ_CONFIG_FILE、RABBITMQ_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/epmd、61613-61614/STOMP、1883-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。