install rabbitmq & clustering pada centos 7

0
858

halo sobat sekolahlinux, kali ini saya akan coba sedikit share tentang bagaimana cara install rabbitmq pada centos 7 lalu membuat clusternya, oke kita langsung mulai ya, pertama saya menyiapkan 3 node, detail nodenya ada dibawah ini

  • node1: 192.168.10.10
  • node2: 192.168.10.20
  • node3: 192.168.10.30

INSTALL ERLANG (jalankan di node1, node2, node3)

sebelumnya install rabbitmq kita diharusnya menginstall erlkang, nah pada tutorial kali ini saya akan melakukan installasi erlang versi 19.x

tambahkan baris host ini di file /etc/hosts

192.168.10.10 node1
192.168.10.20 node2
192.168.10.30 node3

selanjutnya buat file rabbitmq-erlang.repo

vim /etc/yum.repos.d/rabbitmq-erlang.repo

jika sudah masukan paramater di bawah ini didalam file rabbitmq-erlang.repo

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/19/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

jika sudah install erlang dengan perintah dibawah ini

yum install erlang

 

INSTALL RABBITMQ (jalankan di node1, node2, node3)

download package rpm rabbitmqnya dahulu

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.3/rabbitmq-server-3.7.3-1.el7.noarch.rpm

jika sudah jalankan perintah dibawah untuk installasinya

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.7.3-1.el7.noarch.rpm

jika sudah jalankan rabbitmq-server

chkconfig rabbitmq-server on
service rabbitmq-server start

 

CLUSTER RABBITMQ

untuk membuat cluster rabbitmq, erlang cookie harus sama pada semua node untuk itu kita akan copy erlang cookie yang ada pada node1 ke node2 & node3, untuk caranya kalian bisa mengikuti perintah dibawah

scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/

selanjutnya jalankan perintah dibawah ini pada node2

[root@node2 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@node2 ...
[root@node2 ~]# rabbitmqctl join_cluster rabbit@node1
Clustering node rabbit@node2 with rabbit@node1
[root@node2 ~]# rabbitmqctl start_app
Starting node rabbit@node2 ...
 completed with 0 plugins.
[root@node2 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node2 ...
[{nodes,[{disc,[rabbit@node1,rabbit@node2]}]},
 {running_nodes,[rabbit@node1,rabbit@node2]},
 {cluster_name,<<"rabbit@node1">>},
 {partitions,[]},
 {alarms,[{rabbit@node1,[]},{rabbit@node2,[]}]}]

selanjutnya jalankan perintah dibawah ini pada node3

[root@node3 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@node3 ...
[root@node3 ~]# rabbitmqctl join_cluster rabbit@node2
Clustering node rabbit@node3 with rabbit@node2
[root@node3 ~]# rabbitmqctl start_app
Starting node rabbit@node3 ...
 completed with 0 plugins.
[root@node3 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node3 ...
[{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]},
 {running_nodes,[rabbit@node1,rabbit@node2,rabbit@node3]},
 {cluster_name,<<"rabbit@node1">>},
 {partitions,[]},
 {alarms,[{rabbit@node1,[]},{rabbit@node2,[]},{rabbit@node3,[]}]}]
[root@node3 ~]#

selanjutnya jalankan perintah ini pada node1

[root@node1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node1 ...
[{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]},
 {running_nodes,[rabbit@node3,rabbit@node2,rabbit@node1]},
 {cluster_name,<<"rabbit@node1">>},
 {partitions,[]},
 {alarms,[{rabbit@node3,[]},{rabbit@node2,[]},{rabbit@node1,[]}]}]

selanjutnya jalankan perintah ini pada ke 3 node (node1, node2, node3)

rabbitmq-plugins enable rabbitmq_management

selanjutnya buat user admin untuk di node1 (kita cukup membuat di node1 karena akan tercopy ke node2 & node3)

#rabbitmqctl add_user username password
rabbitmqctl add_user admin qwerty1234

#rabbitmqctl set_user_tags username role
rabbitmqctl set_user_tags admin administrator

#rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

selanjut set policy agar queue bisa replikasi ke node-node lainnya (kita cukup membuat di node1 karena akan tercopy ke node2 & node3)

rabbitmqctl set_policy sekolahlinux-all ".*" '{"ha-mode":"all"}'

oke sekian tutorial cluster kali ini, semoga bermanfaat ya buat teman-teman

untuk merubah type node nya menjadi type ram atau type disc kalian bisa menggunakan tutorial di url dibawah ini untuk lebih detailnya