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