RabbitMQ Installation — RHEL/Rocky Linux
Infrastructure: RabbitMQ Message Broker
Platform: RHEL/Rocky Linux 8–10
Overview
This page covers the manual installation of RabbitMQ and Erlang on RHEL or Rocky Linux (versions 8, 9, and 10). Use these steps when Ansible automation is not available in your environment.
Prerequisites
Before starting, confirm the following:
- RHEL or Rocky Linux 8, 9, or 10 — fully updated (
dnf update -y) - Root or sudo access on the target host
- Internet access available (to download from RabbitMQ and Erlang repositories)
- Port 5672 open from Diskover web and worker hosts
- Port 15672 open from admin workstations (optional, for management UI)
- SELinux and firewalld disabled or configured appropriately
Step 1 — Import RabbitMQ Signing Keys
Import the GPG signing keys used to verify the Erlang and RabbitMQ packages:
# Primary RabbitMQ signing key rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc' # Modern Erlang repository key rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key' # RabbitMQ server repository key rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'
Step 2 — Configure Repositories
Create the RabbitMQ repository file:
vi /etc/yum.repos.d/rabbitmq.repo
Use the repository configuration that matches your OS version below.
RHEL/Rocky 8
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el8
baseurl=https://yum1.rabbitmq.com/erlang/el/8/$basearch
https://yum2.rabbitmq.com/erlang/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-noarch]
name=modern-erlang-el8-noarch
baseurl=https://yum1.rabbitmq.com/erlang/el/8/noarch
https://yum2.rabbitmq.com/erlang/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
##
## RabbitMQ Server
##
[rabbitmq-el8]
name=rabbitmq-el8
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/8/$basearch
https://yum1.rabbitmq.com/rabbitmq/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el8-noarch]
name=rabbitmq-el8-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/8/noarch
https://yum1.rabbitmq.com/rabbitmq/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
RHEL/Rocky 9 (and 10)
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el9
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
https://yum2.rabbitmq.com/erlang/el/9/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-noarch]
name=modern-erlang-el9-noarch
baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch
https://yum2.rabbitmq.com/erlang/el/9/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
##
## RabbitMQ Server
##
[rabbitmq-el9]
name=rabbitmq-el9
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch
https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-noarch]
name=rabbitmq-el9-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
Step 3 — Install RabbitMQ and Erlang
dnf -y install rabbitmq-server erlang
Step 4 — Start and Enable the Service
systemctl start rabbitmq-server systemctl enable rabbitmq-server systemctl status rabbitmq-server
You should see the service in an active (running) state:
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; preset: disabled)
Active: active (running) since Wed 2025-11-05 23:14:01 MST; 8s ago
Main PID: 17935 (beam.smp)
...
Nov 05 23:14:01 rocky9 systemd[1]: Started RabbitMQ broker.
Step 5 — Configure RabbitMQ for Diskover
Enable the management plugin and create a dedicated Diskover user:
# Enable the management UI plugin rabbitmq-plugins enable rabbitmq_management # Secure the default guest account (this password is not used by Diskover) rabbitmqctl change_password guest your-guest-password # Create a dedicated Diskover user (choose your own username and password) rabbitmqctl add_user diskover your-rabbitmq-password # Grant administrator privileges rabbitmqctl set_user_tags diskover administrator # Set permissions on the default vhost (configure, write, read) rabbitmqctl set_permissions -p / diskover ".*" ".*" ".*" # Restart to apply changes systemctl restart rabbitmq-server systemctl status rabbitmq-server
Step 6 — Verify the Installation
Check the service status:
systemctl status rabbitmq-server
Run a quick health check:
rabbitmqctl status
Example output from the health check:
Status of node rabbit@test-worker ... Runtime OS PID: 945 OS: Linux Uptime (seconds): 86357 Is under maintenance?: false RabbitMQ version: 4.2.4 RabbitMQ release series support status: see https://www.rabbitmq.com/release-information Node name: rabbit@test-worker Erlang configuration: Erlang/OTP 26 [erts-14.2.5] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit] Crypto library: OpenSSL 3.5.1 1 Jul 2025 Erlang processes: 441 used, 1048576 limit Scheduler run queue: 1 Cluster heartbeat timeout (net_ticktime): 60
Step 7 — Connect Diskover to RabbitMQ
After RabbitMQ is running, configure the connection in Diskover Admin:
Navigate to Diskover Admin (
http://your-web-host:8000/diskover_admin/)Go to System → Message Queue
Enter the RabbitMQ host IP, port (5672), and the
diskoveruser credentials you created aboveSave the configuration
Click the Test button to ensure Diskover Web is able to connect to RabbitMQ
Service Management
Action | Command |
|---|---|
Start |
|
Stop |
|
Restart |
|
Status |
|
Enable on boot |
|
Logs (journald) |
|
Logs (file) |
|
Helpful RabbitMQ Commands
# Quick status check rabbitmqctl status # Detailed diagnostics (plugins, memory, disk, listeners) rabbitmq-diagnostics status # List all queues with message counts and memory usage rabbitmqctl list_queues # List active connections rabbitmqctl list_connections # Check cluster status (useful for multi-node setups) rabbitmqctl cluster_status
Troubleshooting
Issue | Cause | Solution |
|---|---|---|
RabbitMQ fails to start | Erlang version mismatch or corrupt Mnesia database | Check |
| RabbitMQ service not running or node name mismatch | Ensure RabbitMQ is running ( |
Celery cannot connect to RabbitMQ | Wrong host/port/credentials in Diskover Admin, or port 5672 blocked | Verify the RabbitMQ connection settings in Diskover Admin. Test connectivity from the worker host: |
Management UI not accessible on port 15672 | Management plugin not enabled or firewall blocking | Enable the plugin: |
Support
Diskover Support Portal: https://support.diskoverdata.com
Diskover Knowledge Base: https://support.diskoverdata.com/hc/en-us
RabbitMQ Official Documentation: https://www.rabbitmq.com/docs
RabbitMQ Installation (RPM): https://www.rabbitmq.com/docs/install-rpm
Comments
0 comments
Please sign in to leave a comment.