目录
Installation Background Instructions:
二、Configuration Hosts(4 Nodes)
七、Join cluster(rabbitmq2 & rabbitmq3 & rabbitmq4)
八、Enable rabbitmq_management(rabbitmq1)
十、Rabbitmq-plugins enable(rabbitmq1 & rabbitmq2 & rabbitmq3 & rabbitmq4)
十四、Authenticate login user and password
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
IP | Hostname | Store Mode | Remark |
192.168.1.20 | rabbitmq01 | disc | focus: .erlang.cookie |
192.168.1.21 | rabbitmq02 | disc | erlang.cookie the same as the value of the 192.168.1.20 cookie. |
192.168.1.22 | rabbitmq03 | ram | erlang.cookie the same as the value of the 192.168.1.20 cookie. |
192.168.1.23 | rabbitmq04 | ram | erlang.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