基于CentOS Stream 9平台搭建RabbitMQ3.13.4以及开机自启

1. erlang与RabbitMQ对应版本参考:https://www.rabbitmq.com/which-erlang.html


2. 安装erlang

官网:https://www.erlang.org/downloads

GitHub: https://github.com/rabbitmq/erlang-rpm/releases


2.1 安装依赖:

powershell 复制代码
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel socat kernel-devel glibc-devel m4 xz 

2.2 指定目录下载

powershell 复制代码
cd /usr/local/
wget https://github.com/erlang/otp/releases/download/OTP-26.2.5.1/otp_src_26.2.5.1.tar.gz

2.3 解压

powershell 复制代码
 tar -zxvf otp_src_26.2.5.1.tar.gz

2.4 创建erlang安装目录

powershell 复制代码
mkdir erlang

2.5 切换目录

powershell 复制代码
cd otp_src_26.2.5.1/

2.6 配置安装路径

powershell 复制代码
./configure --prefix=/usr/local/erlang

2.7 安装

powershell 复制代码
make install

2.8 查看一下是否安装成功

powershell 复制代码
ll /usr/local/erlang/bin

2.9 添加环境变量

powershell 复制代码
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile

2.10 刷新环境变量

powershell 复制代码
source /etc/profile

2.11 测试进入erl

powershell 复制代码
erl

2.12 退出

powershell 复制代码
halt().

3. 安装RabbitMQ

官网: https://rabbitmq.com/

GitHub: https://github.com/rabbitmq/rabbitmq-server/releases


3.1 下载

powershell 复制代码
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.4/rabbitmq-server-generic-unix-3.13.4.tar.xz

3.2 安装xz

powershell 复制代码
yum install -y xz

3.3 第一次解压

powershell 复制代码
/bin/xz -d rabbitmq-server-generic-unix-3.13.4.tar.xz

3.4 第二次解压

powershell 复制代码
tar -xvf rabbitmq-server-generic-unix-3.13.4.tar

3.5 重命名

powershell 复制代码
mv rabbitmq_server-3.13.4 rabbitmq

3.6 配置环境变量

powershell 复制代码
echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile

3.7 刷新环境变量

powershell 复制代码
source /etc/profile

3.8 创建配置目录

powershell 复制代码
mkdir /etc/rabbitmq

3.9 开启web插件

powershell 复制代码
cd /usr/local/rabbitmq/sbin
rabbitmq-plugins enable rabbitmq_management

3.10 相关命令:启动、停止、状态

powershell 复制代码
rabbitmq-server -detached
rabbitmqctl stop
rabbitmqctl status

3.11 开放需要的端口

rabbitmq的

powershell 复制代码
firewall-cmd --add-port=15672/tcp --permanent   
firewall-cmd --add-port=5672/tcp --permanent
firewall-cmd --add-port=9876/tcp --permanent
firewall-cmd --add-port=10909/tcp --permanent
firewall-cmd --add-port=10911/tcp --permanent

Erlang的

powershell 复制代码
firewall-cmd --add-port=4369/tcp --permanent
firewall-cmd --reload

查看开放端口列表

powershell 复制代码
firewall-cmd --permanent --list-port

访问:http://127.0.0.1:15672/

默认账号密码:guest guest(这个账号只允许本机访问)

3.12 设置用户

查看所有用户

powershell 复制代码
rabbitmqctl list_users

添加一个用户

powershell 复制代码
rabbitmqctl add_user coisini 123456

配置权限

powershell 复制代码
rabbitmqctl set_permissions -p "/" coisini ".*" ".*" ".*"

查看用户权限

powershell 复制代码
rabbitmqctl list_user_permissions coisini

设置tag

powershell 复制代码
rabbitmqctl set_user_tags coisini administrator

删除用户(出于安全考虑,删除默认用户)

powershell 复制代码
rabbitmqctl delete_user guest

访问:http://127.0.0.1:15672/


4. 开机自启

创建软连接(一般存在了)

powershell 复制代码
ln -s /usr/local/erlang/sbin/erl /usr/bin/erl

4.1 编辑服务文件

powershell 复制代码
vi /lib/systemd/system/rabbitmq.service

4.2 添加以下内容:

powershell 复制代码
# 启动顺序与依赖关系
[Unit]
# 描述信息,表明这个服务是 rabbitmq
Description=rabbitmq
# 指定服务在 network.target(网络初始化) 和 syslog.target(系统日志服务)之后启动
After=network.target syslog.target
# 启动行为
[Service]
# 以通知机制的方式启动
Type=notify
# 指定以 root 用户、root 用户组 身份运行服务
User=root
Group=root
# 设置服务的工作目录
WorkingDirectory=/usr/local/rabbitmq
# 服务启动命令路径
ExecStart=/usr/local/rabbitmq/sbin/rabbitmq-server
# 服务停止命令路径
ExecStop=/usr/local/rabbitmq/sbin/rabbitmqctl shutdown
# 当服务异常退出自动重启
Restart=on-failure
# 服务启用私有的 /tmp 目录,确保服务的临时文件与其他服务隔离
PrivateTmp=true
# 设置重启服务之前等待的秒数为 10 秒
RestartSec=10
# 定义服务成功退出的状态码
SuccessExitStatus=69

# 表示如何安装配置文件。
[Install]
# 多用户命令行模式
WantedBy=multi-user.target

4.3 重新加载systemctl脚本

powershell 复制代码
systemctl daemon-reload

4.4 开启开机自启

powershell 复制代码
systemctl enable rabbitmq

4.5 重启验证:

powershell 复制代码
reboot

感谢阅览,暂时记录到这,结束。

相关推荐
xuanzdhc1 小时前
Linux 基础IO
linux·运维·服务器
愚润求学1 小时前
【Linux】网络基础
linux·运维·网络
bantinghy1 小时前
Linux进程单例模式运行
linux·服务器·单例模式
小和尚同志2 小时前
29.4k!使用 1Panel 来管理你的服务器吧
linux·运维
帽儿山的枪手2 小时前
为什么Linux需要3种NAT地址转换?一探究竟
linux·网络协议·安全
shadon1789 天前
回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务
linux
AWS官方合作商9 天前
AWS ACM 重磅上线:公有 SSL/TLS 证书现可导出,突破 AWS 边界! (突出新功能的重要性和突破性)
服务器·https·ssl·aws
小米里的大麦9 天前
014 Linux 2.6内核进程调度队列(了解)
linux·运维·驱动开发
程序员的世界你不懂9 天前
Appium+python自动化(三十)yaml配置数据隔离
运维·appium·自动化
算法练习生9 天前
Linux文件元信息完全指南:权限、链接与时间属性
linux·运维·服务器