RabbitMQ 开机启动配置教程

RabbitMQ 开机启动配置教程

在本教程中,我们将详细介绍如何配置 RabbitMQ 以实现开机自动启动。此配置适用于手动安装的 RabbitMQ 版本。

环境准备

  • 操作系统:CentOS 7
  • RabbitMQ 版本:3.8.4
  • Erlang 版本:21.3

步骤

1. 安装 Erlang

  1. 安装依赖

    bash 复制代码
    sudo yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget socat
  2. 下载 Erlang

    bash 复制代码
    wget http://erlang.org/download/otp_src_21.3.tar.gz
  3. 解压并编译安装

    bash 复制代码
    tar -xvf otp_src_21.3.tar.gz
    cd otp_src_21.3
    ./configure --prefix=/usr/local/erlang
    make && make install
  4. 配置环境变量

    编辑 /etc/profile 文件,添加以下内容:

    bash 复制代码
    export PATH=$PATH:/usr/local/erlang/bin

    使配置生效:

    bash 复制代码
    source /etc/profile
  5. 验证安装

    bash 复制代码
    erl -version

2. 安装 RabbitMQ

  1. 下载 RabbitMQ

    bash 复制代码
    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.4/rabbitmq-server-generic-unix-3.8.4.tar.xz
  2. 解压

    bash 复制代码
    xz -d rabbitmq-server-generic-unix-3.8.4.tar.xz
    tar -xvf rabbitmq-server-generic-unix-3.8.4.tar
  3. 配置环境变量

    编辑 /etc/profile 文件,添加以下内容:

    bash 复制代码
    export PATH=$PATH:/usr/local/rabbitmq_server-3.8.4/sbin

    使配置生效:

    bash 复制代码
    source /etc/profile

3. 配置 RabbitMQ 环境文件

  1. 编辑 rabbitmq-env 文件

    bash 复制代码
    sudo vi /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-env
  2. 添加 Erlang 路径

    在文件中添加 Erlang 的路径:

    bash 复制代码
    export PATH=$PATH:/usr/local/erlang/bin

4. 创建 RabbitMQ 服务文件

  1. 创建服务文件

    bash 复制代码
    sudo vi /etc/systemd/system/rabbitmq.service
  2. 添加以下内容

    ini 复制代码
    [Unit]
    Description=RabbitMQ Server
    Documentation=https://www.rabbitmq.com/docs.html
    After=network.target
    
    [Service]
    Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/erlang/bin"
    User=rabbitmq
    Group=rabbitmq
    Type=notify
    ExecStart=/usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-server
    ExecStop=/usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmqctl stop
    Restart=on-failure
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target

5. 配置开机启动

  1. 加载服务文件

    bash 复制代码
    sudo systemctl daemon-reload
  2. 启用开机启动

    bash 复制代码
    sudo systemctl enable rabbitmq.service
  3. 立即启动服务

    bash 复制代码
    sudo systemctl start rabbitmq.service
  4. 查看服务状态

    bash 复制代码
    sudo systemctl status rabbitmq.service

6. 验证配置

  1. 验证 RabbitMQ 状态

    bash 复制代码
    sudo /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmqctl status
  2. 验证管理插件

    bash 复制代码
    sudo /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-plugins enable rabbitmq_management
  3. 访问管理界面

    通过浏览器访问 http://<服务器IP>:15672,使用管理员账户登录。

7. 查看服务日志

如果服务启动失败,可以使用以下命令查看详细日志:

bash 复制代码
journalctl -u rabbitmq.service -l

此命令将显示 RabbitMQ 服务的详细日志,帮助你排查问题。

8. 检查端口冲突和防火墙设置

  1. 检查端口占用

    确保 RabbitMQ 使用的端口(默认是 567215672)未被其他服务占用:

    bash 复制代码
    sudo netstat -tuln | grep 5672
    sudo netstat -tuln | grep 15672
  2. 查看占用端口的进程

    如果发现端口被占用,可以使用以下命令找出占用端口的进程:

    bash 复制代码
    sudo lsof -i :5672
    sudo lsof -i :15672
  3. 停止占用端口的进程

    如果确认该进程不是必需的,可以停止它:

    bash 复制代码
    sudo kill -9 <PID>

    替换 <PID> 为实际的进程 ID。

  4. 配置防火墙

    确保防火墙允许访问 RabbitMQ 的端口:

    bash 复制代码
    sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
    sudo firewall-cmd --reload

注意事项

  • 用户和组 :确保创建了 rabbitmq 用户和组,并且服务文件中指定的用户和组存在。
  • 权限:确保 RabbitMQ 的安装目录和文件有正确的权限。
  • 防火墙设置 :确保防火墙允许访问 RabbitMQ 的端口(默认是 567215672)。

通过以上步骤,您可以成功配置 RabbitMQ 开机自动启动,并能够有效地管理和排查服务问题。

相关推荐
FakeOccupational8 分钟前
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信拓扑与操作 BR/EDR(经典蓝牙)和 BLE
笔记·分布式·p2p
伤不起bb2 小时前
Kafka 消息队列
linux·运维·分布式·kafka
dddaidai1232 小时前
kafka入门学习
分布式·学习·kafka
shangjg33 小时前
Kafka数据怎么保障不丢失
java·分布式·后端·kafka
陈奕昆4 小时前
4.2 HarmonyOS NEXT分布式AI应用实践:联邦学习、跨设备协作与个性化推荐实战
人工智能·分布式·harmonyos
怪力左手5 小时前
kafka部署
分布式·kafka
predisw7 小时前
Kafka broker 写消息的过程
分布式·kafka
找不到、了8 小时前
深入学习RabbitMQ队列的知识
分布式·rabbitmq
showmethetime8 小时前
RabbitMQ实用技巧
分布式·rabbitmq·ruby
KwokGuardian10 小时前
Seata 分布式事务 AT 模式
分布式