{"id":15355480,"url":"https://github.com/ittus/rabbitmq-multiple-cluster-set-up-centos","last_synced_at":"2025-04-05T08:22:46.219Z","repository":{"id":90076958,"uuid":"82031706","full_name":"ittus/rabbitmq-multiple-cluster-set-up-centos","owner":"ittus","description":"Guide for setting up high available rabbitmq cluster","archived":false,"fork":false,"pushed_at":"2017-02-15T09:23:21.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-10T15:51:02.247Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ittus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-15T07:19:12.000Z","updated_at":"2017-02-15T07:19:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"3b70ba85-8900-476f-8bc7-4f608bde6105","html_url":"https://github.com/ittus/rabbitmq-multiple-cluster-set-up-centos","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ittus%2Frabbitmq-multiple-cluster-set-up-centos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ittus%2Frabbitmq-multiple-cluster-set-up-centos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ittus%2Frabbitmq-multiple-cluster-set-up-centos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ittus%2Frabbitmq-multiple-cluster-set-up-centos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ittus","download_url":"https://codeload.github.com/ittus/rabbitmq-multiple-cluster-set-up-centos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247307552,"owners_count":20917498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T12:24:32.617Z","updated_at":"2025-04-05T08:22:46.199Z","avatar_url":"https://github.com/ittus.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# rabbitmq-multiple-cluster-set-up-centos\nGuide for setting up high available rabbitmq cluster\n\n# Set up rabbitmq\n\nSet up rabbitmq on both master and slave1 server\n```\nyum -y update\nwget http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.2/rabbitmq-server-3.2.2-1.noarch.rpm\nrpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc\nyum install rabbitmq-server-3.2.2-1.noarch.rpm\nrabbitmq-plugins enable rabbitmq_management\n```\n\n## Start rabbitmq\n```\nrabbitmq-server -detached\nrabbitmqctl status\n```\n\nRun rabbitmqctl cluster_status and you will receive:\n```\nCluster status of node rabbit@localhost ...\n[{nodes,[{disc,[rabbit@master]}]},\n {running_nodes,[rabbit@master]},\n {cluster_name,\u003c\u003c\"rabbit@master\"\u003e\u003e},\n {partitions,[]},\n {alarms,[{rabbit@master,[]}]}]\n ```\nNote `rabbit@master` name, need to use it in below section.\n\n# Config hosts file\nEdit /etc/hosts on both master and slave1 server:\n\n```\n10.0.0.1 master_name master_name\n10.0.0.2 slave1_name slave1_name\n```\n\nNote that master_name and slave1_name is hostname (Can run `hostname -s` to check)\n\n# Config firewalld\nDo it on master and all slave clusters:\n\n```\nfirewall-cmd --zone=public --permanent --add-port=15672/tcp\nfirewall-cmd --zone=public --permanent --add-port=25672/tcp\nfirewall-cmd --zone=public --permanent --add-port=5672/tcp\nfirewall-cmd --zone=public --permanent --add-port=4369/tcp\nfirewall-cmd --reload\n```\n \n\n# Set up cluster\n## Sync cookie\nOn master:\n```\n[master]# cat /var/lib/rabbitmq/.erlang.cookie \nXNZYNUHKGUCVDTGZXJKX\n```\n\nCopy `DQRRLCTUGODCRFNPIABC` value to slave1:\n```\n[slave1]# echo -n \"DQRRLCTUGODCRFNPIABC\" \u003e /var/lib/rabbitmq/.erlang.cookie\n```\n\n## Config cluster\nOn master:\n\n```\n[master]# rabbitmqctl stop_app\n[master]# rabbitmqctl reset\n[master]# rabbitmqctl start_app\n```\nOn slave1:\n```\n[slave1]# rabbitmqctl stop_app\n[slave1]# rabbitmqctl reset\n[slave1]# rabbitmqctl join_cluster rabbit@master\n[slave1]# rabbitmqctl start_app\n[slave1]# rabbitmqctl cluster_status\nCluster status of node 'rabbit@slave1' ...\n[{nodes,[{disc,['rabbit@master',\n                'rabbit@slave1']}]},\n {running_nodes,['rabbit@master',\n                 'rabbit@slave1']},\n {cluster_name,\u003c\u003c\"rabbit@master\"\u003e\u003e},\n {partitions,[]}]\n...done.\n\n```\n\n\n## Cluster policy\n```\nrabbitmqctl set_policy ha-all \"\" '{\"ha-mode\":\"all\",\"ha-sync-mode\":\"automatic\"}'\n```\n\n# Extra\n## Remove all message in queue\n```\nrabbitmqadmin list queues name | awk '{print $2}' | xargs -I qn rabbitmqadmin delete queue name=qn\n```\n\n## Monitor by systemctl\n\n```\nchkconfig rabbitmq-server on\n```\nEdit /etc/systemd/system/rabbitmq-server.service\n\n```\n[Unit]\nDescription=Rabbitmq service\nAfter=network.target\n\n[Service]\nUser=root\nGroup=root\nWorkingDirectory=/home/root/\nExecStart=/usr/sbin/rabbitmq-server\nRestart=always\n\n[Install]\nWantedBy=multi-user.target\n```\n\nNow we can monitor by\n```\nsystemctl start rabbitmq-server\nsystemctl status rabbitmq-server\nsystemctl stop rabbitmq-server\n```\n## Limit number of message in queue \n```\nrabbitmqctl set_policy limit_celeryev_queues \"^celeryev\\.\" '{\"max-length\":10}' --apply-to queues\n```\n(Limit queue with start with `celeryev` maximum 10 messages)\n\n\n## Set up user name and password\n```\nrabbitmqctl add_user test test\nrabbitmqctl set_user_tags test administrator\nrabbitmqctl set_permissions -p / test \".*\" \".*\" \".*\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fittus%2Frabbitmq-multiple-cluster-set-up-centos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fittus%2Frabbitmq-multiple-cluster-set-up-centos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fittus%2Frabbitmq-multiple-cluster-set-up-centos/lists"}