部署RabbitMQ
2020-12-19 本文已影响0人
轻飘飘D
1.修改网卡信息(因vm从模板中复制而来)
[root@xag138 ~]# cd /etc/sysconfig/network-scripts/
[root@xag138 network-scripts]# cat ifcfg-ens33
...
IPADDR="192.168.40.101"
...
#重啟網卡
[root@xag138 network-scripts]# service network restart
2.禁用防火墙
#关闭firewall:停止firewall
systemctl stop firewalld.service
systemctl stop iptables.service (如有)
#禁止firewall开机启动
systemctl disable firewalld.service
3.安裝基本工具
[root@XAG138 ~]# yum -y install nano vim wget curl net-tools lsof zip unzip
4.配置主机名
[root@xag138 ~]# cat /etc/hostname
xag101
[root@xag138 java]# cat /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=xag101
vim /etc/hosts
#增加如下
192.168.40.101 xag101
#重启os
reboot
5.安装jdk1.8
[root@xag101 ~]# java -version
-bash: java: command not found
[root@xag101 ~]# rpm -qa | grep java
#存在则卸载,命令: rpm -e --nodeps 包名
#安装jdk
[root@xag101 ~]# mkdir /u01/java -p
[root@xag101 ~]# cd /u01/java/
[root@xag101 java]# ls
jdk-8u271-linux-x64.tar.gz
[root@xag101 java]# tar -zxvf jdk-8u271-linux-x64.tar.gz
#设置环境变量
[root@xag101 java]# vim /etc/profile
在profile中添加如下内容:
#set java environment
JAVA_HOME=/u01/java/jdk1.8.0_271
JRE_HOME=/u01/java/jdk1.8.0_271/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
#让修改生效:
[root@xag101 java]# source /etc/profile
#输入java -version查看一下jdk版本信息:
[root@xag101 java]# java -version
- 安装依赖包
yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel
7.安装erlang
[root@xag101 ~]# cd /usr/local/src
[root@xag101 src]# pwd
/usr/local/src
#下载erlang安装包
wget http://erlang.org/download/otp_src_23.2.tar.gz
#解压缩erlang安装包
tar xzf otp_src_23.2.tar.gz
#创建一个文件夹
mkdir /usr/local/erlang
#编译并安装erlang
cd otp_src_23.2
./configure --prefix=/usr/local/erlang --without-javac
make && make install
8.修改profile配置文件
#运行以下命令打开profile配置文件
vim /etc/profile
#在文件末尾处添加如下内容
export PATH=$PATH:/usr/local/erlang/bin
#使环境变量生效
source /etc/profile
#检查安装结果
erl -version
9.下载RabbitMQ安装包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm
#导入签名密钥
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
#安装RabbitMQ Server
yum install rabbitmq-server-3.8.9-1.el7.noarch.rpm
...
Error: Package: rabbitmq-server-3.8.9-1.el7.noarch (/rabbitmq-server-3.8.9-1.el7.noarch)
Requires: erlang >= 21.3
...
- Zero-dependency Erlang RPM for RabbitMQ
# In /etc/yum.repos.d/rabbitmq_erlang.repo
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
10.安装RabbitMQ Server
yum install erlang
[root@xag101 src]# which erl
/usr/bin/erl
yum install rabbitmq-server-3.8.9-1.el7.noarch.rpm
[root@xag101 src]# which rabbitmq-server
/usr/sbin/rabbitmq-server
[root@xag101 src]# service rabbitmq-server status
Redirecting to /bin/systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
Active: inactive (dead)
11.配置RabbitMQ
#允许RabbitMQ开机自启动
systemctl enable rabbitmq-server
#启动RabbitMQ
systemctl start rabbitmq-server
#为保证数据安全,建议您删除默认用户,RabbitMQ默认的账号用户名和密码都是guest
rabbitmqctl delete_user guest
#创建管理员用户
rabbitmqctl add_user xag xag123
#将创建的新用户设置为管理员
rabbitmqctl set_user_tags xag administrator
#赋予新创建的用户所有权限
rabbitmqctl set_permissions -p / xag ".*" ".*" ".*"
#启用RabbitMQ的web管理界面
rabbitmq-plugins enable rabbitmq_management
12.使用浏览器访问http://192.168.40.101:15672
13.集群环境
IP地址 | 主机名 | 操作系统 | 防火墙和SELinux | 用途 |
---|---|---|---|---|
..40.102 | xag102 | CentOS7.4(64位) | 关闭 | 磁盘节点 |
..40.103 | xag103 | CentOS7.4(64位) | 关闭 | 内存节点 |
..40.104 | xag104 | CentOS7.4(64位) | 关闭 | 内存节点 |
14.配置hosts文件(xag102,xag103,xag104)
[root@xag102 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.102 xag102
192.168.40.103 xag103
[root@xag102 ~]# cat /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=xag102
[root@xag102 ~]# cat /etc/hostname
xag102
15.拷贝erlang.cookie (必须保证各节点cookie一致,不然节点之间就无法通信)
[root@xag102 ~]# cat /var/lib/rabbitmq/.erlang.cookie
GYFVDVKVKFHQCOESGPYU
用scp的方式将xag102节点的.erlang.cookie的值复制到其他两个节点中。
scp /var/lib/rabbitmq/.erlang.cookie root@xag103:/var/lib/rabbitmq/.erlang.cookie
16.启动RabbitMQ ( 所有节点)
systemctl start rabbitmq-server
17.将xag103作为内存节点加入xag102节点集群中
#xag103 上
rabbitmqctl stop_app //停掉rabbit应用
rabbitmqctl join_cluster --ram rabbit@xag102 //加入到磁盘节点
rabbitmqctl start_app //启动rabbit应用
#查看集群状态
[root@xag103 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@xag103 ...
Basics
Cluster name: rabbit@xag102
Disk Nodes
rabbit@xag102
RAM Nodes
rabbit@xag103
Running Nodes
rabbit@xag102
rabbit@xag103
Versions
rabbit@xag102: RabbitMQ 3.8.9 on Erlang 23.1.5
rabbit@xag103: RabbitMQ 3.8.9 on Erlang 23.1.5
Maintenance status
Node: rabbit@xag102, status: not under maintenance
Node: rabbit@xag103, status: not under maintenance
#创建管理员用户
rabbitmqctl add_user xag2 xag123
#将创建的新用户设置为管理员
rabbitmqctl set_user_tags xag2 administrator
#赋予新创建的用户所有权限
rabbitmqctl set_permissions -p / xag2 ".*" ".*" ".*"
#为保证数据安全,建议您删除默认用户,RabbitMQ默认的账号用户名和密码都是guest
rabbitmqctl delete_user guest
使用浏览器访问 http://192.168.40.102:15672 查看集群状态 (xag2 登录)

https://github.com/rabbitmq/erlang-rpm // 这个网页上写的很清楚,安装rabbitmq 之前的erlang的安装方式
https://github.com/rabbitmq/rabbitmq-server/releases // 想要什么版本,已经最低的erlang版本要求
http://www.rabbitmq.com/which-erlang.html // 对应的版本关系