Skip to main content
Matrix42 Self-Service Help Center

RabbitMQ Server Manual Installation

About this Document

In addition to the automated installation provided by Matrix42 this article describes the manual installation. This allows you to either install RabbitMQ with own sources or adapt an resisting RabbitMQ installation to be used with Matrix42 products.

Prerequisites and considerations

This manual is for partners and customers which are familiar with message broker systems in general and specifically with RabbitMQ. If this is not the case we recommend to follow the automated installation provided by Matrix42 which installs and configures RabbitMQ.

RabbitMQ Firewall Settings

Firewall settings - which Ports are used by RabbitMQ
• 5672, 5671: used by the protocol AMQP 0-9-1 and 1.0 clients with and without TLS
• 15672: HTTP API clients, management UI and rabbitmqadmin (only if the management plugin is enabled)

Manual Installation of RabbitMQ Server

For a manual installation, please extract the compressed file downloaded from the official RabbitMQ website.

Installation of Erlang OTP

RabbitMQ requires a 64-bit supported version of Erlang for Windows to be installed.
The provided getting started package contains a suitable Erlang OTP version for the provided RabbitMQ release.

Install Erlang silently from CMD

The mentioned versions might vary depending on time of downloading the installation sources.

  • Run the provided installer with the following parameters from CMD otp_win64_22.1.exe /S
  • This will install the Erlang OTP in its default location C:\Program Files\erl10.5
  • Optionally it is possible to define the installation directory as follows otp_win64_22.1.exe /S /D=
  • The /D parameter expects a path to which Erlang OTP should be deployed
  • For the Step by Step guide we will assume you used the default settings
  • Once Erlang is installed, we need to set Erlang home directory as a variable in your environment so the RabbitMQ installation can find it Set ERLANG_HOME=C:\Program Files\erl10.5


Attention: Don’t forget to change the guest password or disable the guest user entirely (latter is recommended). This user must only be used during installation from and to localhost (https://www.rabbitmq.com/access-control.html).

Install of Erlang OTP using the installer
  • Start the provided Erlang OTP installer
  • Click next
  • Click next
  • Optionally: define a Destination Folder of choice
  • Click install and confirm after installation
  • Once Erlang is installed, we need to set Erlang home directory as a variable in your environment so the RabbitMQ installation can find it Set ERLANG_HOME=C:\Program Files\erl10.5

Installation of RabbitMQ Server

Install RabbitMQ silently from CMD

Run the provided installer with the following parameters from CMD
rabbitmq-server-3.8.0.exe /S
This will install RabbitMQ server by default to: C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.0
It installs RabbitMQ as a Windows service and starts it using the default configuration.
set RABBITMQ_BASE="C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.0"

Enable RabbitMQ Management Plugin

Find your RabbitMQ installation and execute rabbitmq-plugins.bat
Start a CMD and change directory to: C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.0\sbin\
Execute rabbitmq-plugins.bat with the following parameters: rabbitmq-plugins.bat enable rabbitmq_management
This will install the necessary management plugins of RabbitMQ.
Check the services running on the machine you installed RabbitMQ to.
Start RabbitMQ Service if not already running.
After RabbitMQ server service has been installed and it is running. Start the RabbitMQ service by executing rabbitmq-service.bat with the parameter start.
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.0\sbin\rabbitmq-service.bat start
Check the Management (Web) Console.
Once the Management Console is available it can be accessed via a web browser at: http://localhost:15672
Use a web browser of choice and navigate to: http://localhost:15672
Login as user ‘guest’ with password ‘guest’ as default credential.

Install OpenSSL (optional)

If you’re planning to use SSL, use the latest OpenSSL available.
Following is a rough sketch of providing RabbitMQ the necessary SSL files
Create a directory within your RabbitMQ installation directory mkdir C:\Program Files\RabbitMQ Server\ssl
Change to the created directory cd C:\Program Files\RabbitMQ Server\ssl
Extract files from your Open SSL source to the SSL directory.
Please proceed with the configuration of your TLS support in RabbitMQ as described in the official RabbitMQ manual.

The Knowledgebase article describes how to use SSL/TLS to secure the communication

Create Exchange and Queues

Use the PowerShell Script (Matrix42) ‘CreateRabbitMqExchangeAndQueues.ps1’ as administrator to create a Topic Exchange and two queues bound to it in your new RabbitMQ system - if you have not yet configured it by the automated installation and configuration.

.\CreateRabbitMqExchangeAndQueues.ps1 
-ManagerUrl "http://localhost:15672" 
-VirtualHost "matrix42" 
-ExchangeName "matrix42.suem" 
-EmpirumQueueName "matrix42.empirum.subscription" 
-ServiceStoreQueueName "matrix42.uem.subscription"

Don’t forget to change the guest password or disable the guest user entirely (latter is recommended). This user must only be used during installation from and to localhost (https://www.rabbitmq.com/access-control.html).

ManagerURL The URL address of the RabbitMQ manager interface
VirtualHost RabbitMQ is multi-tenant system: connections, exchanges, queues, bindings, user permissions, policies and some other things belong to virtual hosts, logical groups of entities. A virtual host has a name. When an AMQP 0-9-1 client connects to RabbitMQ, it specifies a vhost name to connect to. This name is required by the script to operate correctly. In our example above we used the VirtualHost "matrix42".
ExchangeName Also known as Topics, Exchanges are message routing agents, defined by the virtual host within RabbitMQ. An exchange is responsible for routing the messages to different queues. In our example above we used the ExchangeName "matrix42.uem."
EmpirumQueueName EmpirumQueueName is the Queue used by your Matrix42 Empirum ServiceBus Service to publish messages.
ServiceStoreQueueName ServiceStoreQueueName is the Queue used by your UEM Console Backend to receive messages

Each connected system needs its own queue as it consumes and removes the messages. Having multiple subscribers on one queue will result in not received messages. If additional systems should be connected the queues need to be added manually.

A username and password for accessing the RabbitMQ system will be created by the powershell script based on your given input.

Adding additional queues

By default queues for the UUX Digital Workspace Platform (DWP), Empirum and Silverback are created. Additionally required queues can be created manually by logging in to the RabbitMQ management console:

  • Select Queues
  • Select "matrix42" in the Virtual Hosts drop down
  • Type in a name like "matrix42.egocesure.subscription" in the name field
  • Click on TTL and enter 2419200000 in the value field (this is the time in milliseconds how long messages stays in the queue if no one rerieves them)
  • Click on "Add Queue"
  • Select the new queue in the table
  • Expand "Bindings"
  • Enter the exchange name i.e. "matrix42.topic" in the "From exchange" field
  • Click add binding

Allowed Characters

User and Password and Virtual Host must be URL encoded strings/Percentage Escape.

The "amqp" URI scheme

The syntax of an AMQP 0-9-1 URI is defined by the following ABNF rules. All names in these rules not defined here are taken from RFC3986.

amqp_URI       = "amqp://" amqp_authority [ "/" vhost ] [ "?" query ]

amqp_authority = [ amqp_userinfo "@" ] host [ ":" port ]

amqp_userinfo  = username [ ":" password ]

username       = *( unreserved / pct-encoded / sub-delims )

password       = *( unreserved / pct-encoded / sub-delims )

vhost          = segment

Once a URI has been successfully parsed according to this syntax, the connection parameters are determined as described in the following sections.

https://www.rabbitmq.com/uri-spec.html

. Vhost

The vhost component is used as the basis for the virtual-host field of the connection.open AMQP 0-9-1 method. Any percent-encoded octets in the vhost should be decoded before the it is passed to the server.

Note that:

  • The vhost component of the URI does not include the leading "/" character from the path. This makes it possible to refer to any vhost, not only those that begin with a "/" character.
  • The vhost is a single segment. Therefore, any "/" characters that appear in the vhost name must be percent-encoded. URIs with multi-segment paths do not obey this specification.

The vhost component may be absent; this is indicated by the lack of a "/" character following the amqp_authority. An absent vhost component is not equivalent to an empty (i.e. zero-length) vhost name.

  • Was this article helpful?