RabbitMQ

Installation

Ubuntu/Debian

# Update package manager
sudo apt update
 
# Install Erlang (RabbitMQ dependency)
sudo apt install erlang -y
 
# Add RabbitMQ repository GPG key
wget -O - "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor -o /usr/share/keyrings/rabbitmq.gpg
 
# Add RabbitMQ repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/rabbitmq.gpg] https://ppa1.rabbitmq.com/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
 
# Update package manager
sudo apt update
 
# Install RabbitMQ
sudo apt install rabbitmq-server -y
 
# Start and enable RabbitMQ
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
 
# Verify installation
sudo systemctl status rabbitmq-server

CentOS/RHEL

# Install Erlang
sudo yum install erlang -y
 
# Install RabbitMQ
sudo yum install rabbitmq-server -y
 
# Start and enable RabbitMQ
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

Initial Setup

# Enable management plugin
sudo rabbitmq-plugins enable rabbitmq_management
 
# Create RabbitMQ user
sudo rabbitmqctl add_user username password
 
# Set user permissions
sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
 
# Make user administrator
sudo rabbitmqctl set_user_tags username administrator
 
# List users
sudo rabbitmqctl list_users

Service Management

# Start RabbitMQ
sudo systemctl start rabbitmq-server
 
# Stop RabbitMQ
sudo systemctl stop rabbitmq-server
 
# Restart RabbitMQ
sudo systemctl restart rabbitmq-server
 
# Check status
sudo systemctl status rabbitmq-server
 
# View logs
sudo tail -f /var/log/rabbitmq/[email protected]

User Management

# Add new user
sudo rabbitmqctl add_user username password
 
# Delete user
sudo rabbitmqctl delete_user username
 
# Change password
sudo rabbitmqctl change_password username newpassword
 
# Set permissions
sudo rabbitmqctl set_permissions -p /vhost username ".*" ".*" ".*"
 
# List users
sudo rabbitmqctl list_users
 
# List user permissions
sudo rabbitmqctl list_user_limits username

Virtual Host Management

# Add virtual host
sudo rabbitmqctl add_vhost vhost_name
 
# Delete virtual host
sudo rabbitmqctl delete_vhost vhost_name
 
# List virtual hosts
sudo rabbitmqctl list_vhosts
 
# Set vhost permissions for user
sudo rabbitmqctl set_permissions -p vhost_name username ".*" ".*" ".*"

Management Interface

# Access RabbitMQ Management Console
# http://server-ip:15672
 
# Default credentials
# username: guest
# password: guest
 
# Disable guest user
sudo rabbitmqctl delete_user guest

Firewall Configuration

# UFW (Ubuntu)
sudo ufw allow 5672    # AMQP port
sudo ufw allow 15672   # Management UI port
 
# Firewalld (CentOS)
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --permanent --add-port=15672/tcp
sudo firewall-cmd --reload

Queue & Exchange Management

# List queues
sudo rabbitmqctl list_queues
 
# List exchanges
sudo rabbitmqctl list_exchanges
 
# List bindings
sudo rabbitmqctl list_bindings
 
# Delete queue
sudo rabbitmqctl delete_queue queue_name

Configuration

RabbitMQ Configuration File

# Main configuration
sudo nano /etc/rabbitmq/rabbitmq.conf
 
# Or advanced configuration
sudo nano /etc/rabbitmq/advanced.config

Common Settings

# Default vhost
default_vhost = /

# Default user
default_user = guest

# Default permissions
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*

# Memory threshold
vm_memory_high_watermark.relative = 0.6
vm_memory_high_watermark_paging_ratio = 0.75

# Disk threshold
disk_free_limit.absolute = 2GB

Uninstall

Ubuntu/Debian

# Stop RabbitMQ
sudo systemctl stop rabbitmq-server
 
# Remove RabbitMQ
sudo apt remove rabbitmq-server -y
sudo apt autoremove -y
 
# Remove data
sudo rm -rf /var/lib/rabbitmq
sudo rm -rf /var/log/rabbitmq
sudo rm -rf /etc/rabbitmq

CentOS/RHEL

# Stop RabbitMQ
sudo systemctl stop rabbitmq-server
 
# Remove RabbitMQ
sudo yum remove rabbitmq-server -y
 
# Remove data
sudo rm -rf /var/lib/rabbitmq
sudo rm -rf /var/log/rabbitmq