在本教程中,我们将详细介绍如何配置 RabbitMQ 以实现开机自动启动。此配置适用于手动安装的 RabbitMQ 版本。
安装依赖:
sudo yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget socat
下载 Erlang:
wget http://erlang.org/download/otp_src_21.3.tar.gz
解压并编译安装:
tar -xvf otp_src_21.3.tar.gz
cd otp_src_21.3
./configure --prefix=/usr/local/erlang
make && make install
配置环境变量:
编辑 /etc/profile
文件,添加以下内容:
export PATH=$PATH:/usr/local/erlang/bin
使配置生效:
source /etc/profile
验证安装:
erl -version
下载 RabbitMQ:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.4/rabbitmq-server-generic-unix-3.8.4.tar.xz
解压:
xz -d rabbitmq-server-generic-unix-3.8.4.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.8.4.tar
配置环境变量:
编辑 /etc/profile
文件,添加以下内容:
export PATH=$PATH:/usr/local/rabbitmq_server-3.8.4/sbin
使配置生效:
source /etc/profile
编辑 rabbitmq-env
文件:
sudo vi /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-env
添加 Erlang 路径: 在文件中添加 Erlang 的路径:
export PATH=$PATH:/usr/local/erlang/bin
创建服务文件:
sudo vi /etc/systemd/system/rabbitmq.service
添加以下内容:
[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
加载服务文件:
sudo systemctl daemon-reload
启用开机启动:
sudo systemctl enable rabbitmq.service
立即启动服务:
sudo systemctl start rabbitmq.service
查看服务状态:
sudo systemctl status rabbitmq.service
验证 RabbitMQ 状态:
sudo /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmqctl status
验证管理插件:
sudo /usr/local/rabbitmq/rabbitmq_server-3.8.4/sbin/rabbitmq-plugins enable rabbitmq_management
访问管理界面:
通过浏览器访问 http://<服务器IP>:15672
,使用管理员账户登录。
如果服务启动失败,可以使用以下命令查看详细日志:
journalctl -u rabbitmq.service -l
此命令将显示 RabbitMQ 服务的详细日志,帮助你排查问题。
检查端口占用:
确保 RabbitMQ 使用的端口(默认是 5672
和 15672
)未被其他服务占用:
sudo netstat -tuln | grep 5672
sudo netstat -tuln | grep 15672
查看占用端口的进程: 如果发现端口被占用,可以使用以下命令找出占用端口的进程:
sudo lsof -i :5672
sudo lsof -i :15672
停止占用端口的进程: 如果确认该进程不是必需的,可以停止它:
sudo kill -9 <PID>
替换 <PID>
为实际的进程 ID。
配置防火墙: 确保防火墙允许访问 RabbitMQ 的端口:
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
用户和组,并且服务文件中指定的用户和组存在。5672
和 15672
)。通过以上步骤,您可以成功配置 RabbitMQ 开机自动启动,并能够有效地管理和排查服务问题。