生产环境Debian11(bullseye)安装分布式RabbitMQ集群

目录

Installation Background Instructions:

一、Installing Packages

二、Configuration Hosts(4 Nodes)

三、Installing

四、Change Default Port

五、Sync .erlang.cookie

六、Start rabbitmq1 node

七、Join cluster(rabbitmq2 & rabbitmq3 & rabbitmq4)

八、Enable rabbitmq_management(rabbitmq1)

九、Create administrator user

十、Rabbitmq-plugins enable(rabbitmq1 & rabbitmq2 & rabbitmq3 & rabbitmq4)

十一、Create vhost

十二、Create user

十三、Set Permissions

十四、Authenticate login user and password

十五、Web browser access


Installation Background Instructions:

I can only install manually because the server cannot connection internet in production environments.

一、Installing Packages

OS: Debian11(Bullsesy)


rabbitmq version: RabbitMQ 3.8.35   https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.35/rabbitmq-server_3.8.35-1_all.deb


Erlang version: 23.2 >= version <= 24.3   https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_24.3.3-1~debian~buster_amd64.deb


rabbitmq_delayed_message_exchange队列延迟插件:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.8.17/rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez


erlang-solutions:https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb

IPHostnameStore ModeRemark
192.168.1.20rabbitmq01discfocus: .erlang.cookie
192.168.1.21rabbitmq02discerlang.cookie the same as the value of the 192.168.1.20 cookie.
192.168.1.22rabbitmq03ramerlang.cookie the same as the value of the 192.168.1.20 cookie.
192.168.1.23rabbitmq04ramerlang.cookie the same as the value of the 192.168.1.20 cookie.

二、Configuration Hosts(4 Nodes)

### rabbitmq1 node
app@rabbitmq3:~$ cat /etc/hostname
rabbitmq1

app@rabbitmq1:~$ cat /etc/hosts
127.0.0.1       localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.20    rabbitmq1
192.168.1.21    rabbitmq2
192.168.1.22    rabbitmq3
192.168.1.23    rabbitmq4


### rabbitmq2 node
app@rabbitmq2:~$ cat /etc/hostname
rabbitmq2

app@rabbitmq2:~$ cat /etc/hosts
127.0.0.1       localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.20    rabbitmq1
192.168.1.21    rabbitmq2
192.168.1.22    rabbitmq3
192.168.1.23    rabbitmq4



### rabbitmq3 node
app@rabbitmq3:~$ cat /etc/hostname
rabbitmq3

app@rabbitmq3:~$ cat /etc/hosts
127.0.0.1       localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.20    rabbitmq1
192.168.1.21    rabbitmq2
192.168.1.22    rabbitmq3
192.168.1.23    rabbitmq4




### rabbitmq4 node
app@rabbitmq4:~$ cat /etc/hostname
rabbitmq4

app@rabbitmq4:~$ cat /etc/hosts
127.0.0.1       localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.20    rabbitmq1
192.168.1.21    rabbitmq2
192.168.1.22    rabbitmq3
192.168.1.23    rabbitmq4

三、Installing

### install Dependency packages
# sudo apt install gcc openssl automake autoconf libtool  libgeoip-dev make -y

# sudo dpkg -i erlang-solutions_2.0_all.deb

# sudo apt-get -f install

# sudo dpkg -i esl-erlang_24.3.3-1~debian~buster_amd64.deb

# sudo dpkg -i rabbitmq-server_3.8.35-1_all.deb

##### rabbitmq default path ######
app@rabbitmq1:~$ whereis rabbitmq
rabbitmq: /usr/lib/rabbitmq /etc/rabbitmq /usr/local/rabbitmq

app@rabbitmq1:/usr/lib/rabbitmq/bin$ pwd
/usr/lib/rabbitmq/bin
app@rabbitmq1:/usr/lib/rabbitmq/bin$ ll
total 0
lrwxrwxrwx 1 root root 46 Jul  9 16:39 rabbitmqctl -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmqctl
lrwxrwxrwx 1 root root 52 Jul  9 16:39 rabbitmq-defaults -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmq-defaults
lrwxrwxrwx 1 root root 55 Jul  9 16:39 rabbitmq-diagnostics -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmq-diagnostics
lrwxrwxrwx 1 root root 47 Jul  9 16:39 rabbitmq-env -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmq-env
lrwxrwxrwx 1 root root 51 Jul  9 16:39 rabbitmq-plugins -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmq-plugins
lrwxrwxrwx 1 root root 50 Jul  9 16:39 rabbitmq-queues -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmq-queues
lrwxrwxrwx 1 root root 50 Jul  9 16:39 rabbitmq-server -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmq-server
lrwxrwxrwx 1 root root 51 Jul  9 16:39 rabbitmq-upgrade -> ../lib/rabbitmq_server-3.8.35/sbin/rabbitmq-upgrade
app@rabbitmq1:/usr/lib/rabbitmq/bin$ 


app@rabbitmq1:/etc/rabbitmq$ pwd
/etc/rabbitmq
app@rabbitmq1:/etc/rabbitmq$ ll
total 12
-rw-r--r-- 1 root rabbitmq  57 Jul 20 15:58 enabled_plugins
-rw-r--r-- 1 root rabbitmq 121 Jul 20 11:18 rabbitmq.conf
-rw-r--r-- 1 root rabbitmq  61 Jul 20 12:22 rabbitmq-env.conf
app@rabbitmq1:/etc/rabbitmq$ 

四、Change Default Port

app@rabbitmq1:/etc/rabbitmq$ cat rabbitmq.conf 
# tcp default port 5672
listeners.tcp.default=5672

# web default port 15672
management.tcp.port=15672
app@rabbitmq1:/etc/rabbitmq$ 

五、Sync .erlang.cookie

#### rabbitmq1 node #######
app@rabbitmq1:/etc/rabbitmq$ sudo  cat /var/lib/rabbitmq/.erlang.cookie 
ENWLABPIDLXMACDBYCVF
app@rabbitmq1:/etc/rabbitmq$ 



#### rabbitmq2 node #######
app@rabbitmq2:/etc/rabbitmq$ sudo  cat /var/lib/rabbitmq/.erlang.cookie 
ENWLABPIDLXMACDBYCVF
app@rabbitmq2:/etc/rabbitmq$ 



#### rabbitmq3 node #######
app@rabbitmq3:/etc/rabbitmq$ sudo  cat /var/lib/rabbitmq/.erlang.cookie 
ENWLABPIDLXMACDBYCVF
app@rabbitmq3:/etc/rabbitmq$ 


#### rabbitmq4 node #######
app@rabbitmq4:/etc/rabbitmq$ sudo  cat /var/lib/rabbitmq/.erlang.cookie 
ENWLABPIDLXMACDBYCVF
app@rabbitmq4:/etc/rabbitmq$ 

六、Start rabbitmq1 node

### rabbitmq node ####
app@rabbitmq1:~$ sudo systemctl restart rabbitmq-server.service


# show rabbitmq cluster status
app@rabbitmq1:~$ sudo rabbitmqctl cluster_status

七、Join cluster(rabbitmq2 & rabbitmq3 & rabbitmq4)

#### rabbitmq2 node ####
app@rabbitmq2:~$ sudo rabbitmqctl stop_app
app@rabbitmq2:~$ sudo rabbitmqctl reset
app@rabbitmq2:~$ sudo rabbitmqctl join_cluster --disc rabbit@rabbitmq1
app@rabbitmq2:~$ sudo rabbitmqctl start_app

app@rabbitmq2:~$ sudo rabbitmqctl cluster_status



#### rabbitmq3 node ####
app@rabbitmq3:~$ sudo rabbitmqctl stop_app
app@rabbitmq3:~$ sudo rabbitmqctl reset
app@rabbitmq3:~$ sudo rabbitmqctl join_cluster --ram rabbit@rabbitmq1
app@rabbitmq3:~$ sudo rabbitmqctl start_app

app@rabbitmq3:~$ sudo rabbitmqctl cluster_status




#### rabbitmq4 node ####
app@rabbitmq4:~$ sudo rabbitmqctl stop_app
app@rabbitmq4:~$ sudo rabbitmqctl reset
app@rabbitmq4:~$ sudo rabbitmqctl join_cluster --ram rabbit@rabbitmq1
app@rabbitmq4:~$ sudo rabbitmqctl start_app

app@rabbitmq4:~$ sudo rabbitmqctl cluster_status

八、Enable rabbitmq_management(rabbitmq1)

app@rabbitmq1:~$ sudo rabbitmq-plugins enable rabbitmq_management

九、Create administrator user

#### Create user "admin" ####
app@rabbitmq1:~$ sudo rabbitmqctl add_user admin xxxxooooo!

#### Set admin to "administrator" permissions
app@rabbitmq1:~$ sudo rabbitmqctl set_user_tags admin administrator 


#### Change guest default password ####
app@rabbitmq1:~$ sudo rabbitmqctl change_password guest BE7oMfMl4JmPS3m1



### List Users ####
app@rabbitmq1:~$ sudo rabbitmqctl list_users

十、Rabbitmq-plugins enable(rabbitmq1 & rabbitmq2 & rabbitmq3 & rabbitmq4)

#### rabbitmq1 node ####
app@rabbitmq1:~$ sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange

app@rabbitmq2:/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.35/plugins$ pwd
/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.35/plugins
app@rabbitmq2:/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.35/plugins$ ls
accept-0.3.5.ez                   lager-3.9.2.ez                                       rabbitmq_federation-3.8.35.ez               rabbitmq_shovel_management-3.8.35.ez
amqp10_client-3.8.35.ez           observer_cli-1.7.3.ez                                rabbitmq_federation_management-3.8.35.ez    rabbitmq_stomp-3.8.35.ez
amqp10_common-3.8.35.ez           prometheus-4.8.1.ez                                  rabbitmq_jms_topic_exchange-3.8.35.ez       rabbitmq_top-3.8.35.ez
amqp_client-3.8.35.ez             quantile_estimator-0.2.1.ez                          rabbitmq_management-3.8.35.ez               rabbitmq_tracing-3.8.35.ez
aten-0.5.5.ez                     ra-1.1.8.ez                                          rabbitmq_management_agent-3.8.35.ez         rabbitmq_trust_store-3.8.35.ez
base64url-1.0.1.ez                rabbit-3.8.35.ez                                     rabbitmq_mqtt-3.8.35.ez                     rabbitmq_web_dispatch-3.8.35.ez
cowboy-2.8.0.ez                   rabbit_common-3.8.35.ez                              rabbitmq_peer_discovery_aws-3.8.35.ez       rabbitmq_web_mqtt-3.8.35.ez
cowlib-2.9.1.ez                   rabbitmq_amqp1_0-3.8.35.ez                           rabbitmq_peer_discovery_common-3.8.35.ez    rabbitmq_web_mqtt_examples-3.8.35.ez
credentials_obfuscation-3.1.0.ez  rabbitmq_auth_backend_cache-3.8.35.ez                rabbitmq_peer_discovery_consul-3.8.35.ez    rabbitmq_web_stomp-3.8.35.ez
cuttlefish-3.0.0.ez               rabbitmq_auth_backend_http-3.8.35.ez                 rabbitmq_peer_discovery_etcd-3.8.35.ez      rabbitmq_web_stomp_examples-3.8.35.ez
eetcd-0.3.3.ez                    rabbitmq_auth_backend_ldap-3.8.35.ez                 rabbitmq_peer_discovery_k8s-3.8.35.ez       ranch-2.1.0.ez
gen_batch_server-0.8.4.ez         rabbitmq_auth_backend_oauth2-3.8.35.ez               rabbitmq_prelaunch-3.8.35.ez                README
getopt-1.0.2.ez                   rabbitmq_auth_mechanism_ssl-3.8.35.ez                rabbitmq_prometheus-3.8.35.ez               recon-2.5.1.ez
goldrush-0.1.9.ez                 rabbitmq_aws-3.8.35.ez                               rabbitmq_random_exchange-3.8.35.ez          stdout_formatter-0.2.4.ez
gun-1.3.3.ez                      rabbitmq_consistent_hash_exchange-3.8.35.ez          rabbitmq_recent_history_exchange-3.8.35.ez  syslog-3.4.5.ez
jose-1.11.1.ez                    rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez  rabbitmq_sharding-3.8.35.ez                 sysmon_handler-1.3.0.ez
jsx-3.1.0.ez                      rabbitmq_event_exchange-3.8.35.ez                    rabbitmq_shovel-3.8.35.ez
app@rabbitmq2:/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.35/plugins$ 





#### rabbitmq2 node ####
app@rabbitmq2:~$ sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange


#### rabbitmq3 node ####
app@rabbitmq3:~$ sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange


#### rabbitmq4 node ####
app@rabbitmq4:~$ sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange

十一、Create vhost

app@rabbitmq1:~$ sudo rabbitmqctl add_vhost /test
app@rabbitmq1:~$ sudo rabbitmqctl list_vhosts

十二、Create user

#### Create user ####
app@rabbitmq1:~$ sudo rabbitmqctl add_user testuser xxxxooooo!

app@rabbitmq1:~$ sudo rabbitmqctl list_users

十三、Set Permissions

#### Set Permissions ####
app@rabbitmq1:~$ sudo rabbitmqctl set_permissions -p /test testuser ".*" ".*" ".*"

#### List permissions ####
app@rabbitmq1:~$ sudo rabbitmqctl list_permissions -p /test

十四、Authenticate login user and password

app@rabbitmq1:~$ sudo rabbitmqctl authenticate_user testuser xxxxooooo!

十五、Web browser access

http://192.168.1.20:15672

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值