In this blog post, I’ll take you through the installation of Erlang & RabbitMQ on CentOS| Fedora. RabbitMQ is an open source message broker software that implements the Advanced Message Queuing Protocol (AMQP). It receives messages from publishers (applications that publish them) and routes them to consumers (applications that process them).
Erlang is a programming language that was developed at Ericsson in the 1980s. It is designed to support the development of concurrent, distributed, and fault-tolerant systems. Erlang’s lightweight processes and message-passing model make it easy to build systems that can tolerate failures, such as the crash of a single node in a distributed system.
In our previous guides, we covered:
Follow the steps below to install RabbitMQ on Fedora.
1. Configure repo and install Erlang
Before installing RabbitMQ, you must install a supported version of Erlang/OTP.
Add YUM repository using bash script:
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
Or manually with the following command:
$ sudo vim /etc/yum.repos.d/rabbitmq_erlang.repo
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
Update system YUM repositories:
sudo yum clean all && sudo yum makecache -y
Agree to import repository GPG key as requested:
rabbitmq_rabbitmq-server 9.5 kB/s | 3.9 kB 00:00
Importing GPG key 0x4D206F89:
Userid : "https://packagecloud.io/rabbitmq/rabbitmq-server (https://packagecloud.io/docs#gpg_signing) <[email protected]>"
Fingerprint: 8C69 5B02 19AF DEB0 4A05 8ED8 F4E7 8920 4D20 6F89
From : https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
Is this ok [y/N]: y
rabbitmq_rabbitmq-server 94 kB/s | 212 kB 00:02
rabbitmq_rabbitmq-server-source 260 B/s | 296 B 00:01
Metadata cache created.
Install Erlang on CentOS 7 / Fedora.
sudo yum install erlang
Confirm installation by running the erl command:
$ erl
Erlang/OTP 26 [erts-14.1.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit:ns]
Eshell V14.1.1 (press Ctrl+G to abort, type help(). for help)
1>
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
(l)oaded (v)ersion (k)ill (D)b-tables (d)istribution
q
2. Install RabbitMQ
Add RabbitMQ Yum repository:
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
Manually adding the repository:
$ sudo vim /etc/yum.repos.d/rabbitmq_rabbitmq-server.repo
[rabbitmq_rabbitmq-server]
name=rabbitmq_rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
The last step is the actual installation of RabbitMQ:
sudo yum install rabbitmq-server
Proceed with the installation of RabbitMQ on CentOS 7 | Fedora
....
Transaction Summary
======================================================================================================================================================================================================
Install 2 Packages
Total download size: 14 M
Installed size: 19 M
Is this ok [y/N]: y
Confirm version of RabbitMQ installed:
$ rpm -qi rabbitmq-server
Name : rabbitmq-server
Version : 3.11.10
Release : 1.fc39
Architecture: x86_64
Install Date: Wed 15 Nov 2023 03:34:38 AM UTC
Group : Unspecified
Size : 23147208
License : MPLv1.1
Signature : RSA/SHA256, Fri 03 Mar 2023 05:07:51 PM UTC, Key ID 75cf5ac418b8e74c
Source RPM : rabbitmq-server-3.11.10-1.fc39.src.rpm
Build Date : Fri 03 Mar 2023 04:59:01 PM UTC
Build Host : buildvm-x86-30.iad2.fedoraproject.org
Packager : Fedora Project
Vendor : Fedora Project
URL : https://www.rabbitmq.com/
Bug URL : https://bugz.fedoraproject.org/rabbitmq-server
Summary : The RabbitMQ server
....
3. Start RabbitMQ Service
Now that you have RabbitMQ installed on your Fedora, start and enable the service to start on system boot:
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
Confirm service status:
$ systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Wed 2023-11-15 03:36:25 UTC; 35s ago
Main PID: 70859 (beam.smp)
Tasks: 24 (limit: 4520)
Memory: 107.9M
CPU: 8.499s
CGroup: /system.slice/rabbitmq-server.service
├─70859 /usr/lib64/erlang/erts-14.1.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtd>
├─70869 erl_child_setup 1024
├─70915 /usr/lib64/erlang/erts-14.1.1/bin/inet_gethost 4
├─70916 /usr/lib64/erlang/erts-14.1.1/bin/inet_gethost 4
└─70919 /bin/sh -s rabbit_disk_monitor
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: Doc guides: https://rabbitmq.com/documentation.html
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: Support: https://rabbitmq.com/contact.html
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: Tutorials: https://rabbitmq.com/getstarted.html
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: Monitoring: https://rabbitmq.com/monitoring.html
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: Logs: /var/log/rabbitmq/[email protected]
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: /var/log/rabbitmq/rabbit@fed39_upgrade.log
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: <stdout>
Nov 15 03:36:21 fed39.mylab.io rabbitmq-server[70859]: Config file(s): /etc/rabbitmq/rabbitmq.conf
Nov 15 03:36:25 fed39.mylab.io rabbitmq-server[70859]: Starting broker... completed with 0 plugins.
Nov 15 03:36:25 fed39.mylab.io systemd[1]: Started rabbitmq-server.service - RabbitMQ broker.
4. Enable RabbitMQ Dashboard (Optional)
You can optionally enable the RabbitMQ Management Web dashboard for easy management:
sudo rabbitmq-plugins enable rabbitmq_management
The Web service should be listening on TCP port 15672
$ sudo ss -tunelp | grep 15672
tcp LISTEN 0 128 0.0.0.0:15672 0.0.0.0:* users:(("beam.smp",pid=9525,fd=71)) uid:111 ino:39934 sk:9 <->
If you have an active Firewalld service, allow ports 5672 and 15672:
sudo firewall-cmd --add-port={5672,15672}/tcp --permanent
sudo firewall-cmd --reload
Access it by opening the Server IP or hostname port 15672.

By default, the guest user exists and can connect only from localhost. You can log in with this user locally with the password “guest”
To be able to login on the network, create an admin user like below:
sudo rabbitmqctl add_user admin StrongPassword
sudo rabbitmqctl set_user_tags admin administrator
Login with this admin username and the password assigned.

5. RabbitMQ User Management Commands
Delete User:
rabbitmqctl delete_user user
Change User Password:
rabbitmqctl change_password user strongpassword
Create new Virtualhost:
rabbitmqctl add_vhost /my_vhost
List available Virtualhosts:
rabbitmqctl list_vhosts
Delete a virtualhost:
rabbitmqctl delete_vhost /myvhost
Grant user permissions for vhost:
rabbitmqctl set_permissions -p /myvhost user ".*" ".*" ".*"
List vhost permissions:
rabbitmqctl list_permissions -p /myvhost
To list user permissions:
rabbitmqctl list_user_permissions user
Delete user permissions:
rabbitmqctl clear_permissions -p /myvhost user
The next article to read is: