部署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

  1. 安装依赖包
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


...

  1. 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 登录)
image.png

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

上一篇 下一篇

猜你喜欢

热点阅读