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.

Download Binaries

  • Open Matrix42 Marketplace
  • Login with your Matrix42 Account 
  • Navigate to Secure Unified Endpoint Management
  • Select Secure Unified Endpoint Management (UUX for SUEM)
  • Locate the Current Release Section and select Download UUX for SUEM
  • Download the latest Matrix42 Service Bus Rabbit MQ package
  • Extract your RabbitMQ Installation Package

RabbitMQ Installation Package content 

The current RabbitMQ getting started package contains:

  • Erlang OTP 24.0
    • TTP is a set of Erlang libraries and design principles providing middle ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools. It is a pre-requisite for the RabbitMQ server
  • RabbitMQ Server 3.9.5 for 64bit Windows system
  • Matrix42 CreateRabbitMqExchangeAndQueues.ps1 PowerShell script

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

Please open the following Ports used by RabbitMQ:

Port Purpose
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

For the manual installation, please open the RabbitMQ_InstallPackage.exe with e.g. 7Zip and extract the content. 

  • rabbitmq-server-3.9.5.exe
  • otp_win64_24.0.exe
  • Install-RabbitMqServer.ps1
  • CreateRabbitMqExchangeAndQueues.ps1

Erlang OTP Installation

  • Start the 64-bit Erlang OTP installer, e.g. otp_win64_24.0.exe
  • Click next
  • Click next
  • Click install and confirm all installations
  • Click Close

Create Environment Variable for Erlang

  • Launch Control Panel and select System
  • Click Advanced system settings
  • Select Environment Variables
  • Locate the System variables section and review if the ERLANG_HOME variables is already present
  • In case the variable is not present, add the variable and put the value to the correct installation path:
Variable name ERLANG_HOME
Variable value C:\Program Files\erl-24.0

RabbitMQ Server Installation

  • Start the Rabbit MQ installer, e.g. rabbitmq-server -3.9.5.exe
  • Press Next
  • Click Install
  • Press Next
  • Click Finish

Create Environment Variable for Rabbit MQ

  • Launch Control Panel and select System
  • Click Advanced system settings
  • Select Environment Variables
  • Locate the System variables section and review if the ERLANG_HOME variables is already present
  • In case they are not present, add the following two variables and put the values to the correct installation paths:
Variable name RABBITMQ_BASE
Variable value C:\Program Files\RabbitMQ Server\rabbitmq_server-3.9.5

RabbitMQ Management Plugin Enablement

  • Navigate back to your administrative command and change the directory to your installation folder:
cd C:\Program Files\RabbitMQ Server\rabbitmq_server-3.9.5\sbin\
  • Execute the rabbitmq-plugins.bat with the following parameters:
rabbitmq-plugins.bat enable rabbitmq_management
  • Open Services and review if the RabbitMQ Service is available and start the service if it is not already running.
  • Now execute the following to start the whole RabbitMQ service:
rabbitmq-service.bat start

Add another system variable with RABBITMQ_SERVER that targets to the installation folder to run rabbitmq commands from any (administrative) Command Prompt without changing directory to the sbin folder. A restart the Command Prompt is required after adding the system variable.

Configuration

Open Management Console

  • Use a web browser of choice and navigate to: http://localhost:15672
  • Login as user guest with password guest as default credential.
  • Navigate to Exchange and Queues and keep the current default configuration

Create Exchange and Queues

  • Open Windows PowerShell as a Administrator
  • Locate in your Windows Explorer the CreateRabbitMqExchangeAndQueues.ps1 under your downloaded and with 7Zip extracted RabbitMQ Installation Package
cd C:\Users\vvalentine\Downloads\RabbitMQ_InstallPackage.4.10.1\RabbitMQ\
  • Execute the following command and review the explanations about the provided parameters below:
.\CreateRabbitMqExchangeAndQueues.ps1 -ManagerUrl "http://localhost:15672" -VirtualHost "matrix42" -ExchangeName "matrix42.suem.topic" -EmpirumQueueName "matrix42.empirum.subscription" -ServiceStoreQueueName "matrix42.uux.subscription"´-SilverbackQueueName "matrix42.silverback.subscription"

If desired, you can modify the names in the PowerShell command for the Virtual Host, Exchange and all Queues to custom ones.

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".
Exchange Name 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.suem.topic"
Empirum Queue Name EmpirumQueueName is the Queue used by your Empirum UEM Backend to publish messages.
Service Store Queue Name ServiceStoreQueueName is the Queue used by your UEM Console Backend to receive messages
Silverback Queue Name Silverback Queue Name is the Queue used by Silverback to publish messages
  • Provide a username and press enter, e.g. rabbitmq
  • Provide a password and press enter, e.g. password

Do not use the characters '/\@%#.* in the password, otherwise your created connection string will get invalid which you will recognize only later.

Review Exchanges and Queues

  • Navigate back to your RabbitMQ Management Console
  • Navigate to Exchanges 
    • You should see the matrix42.suem.topic
  • Navigate to Queues
    • You should see now three new queues
      • matrix42.empirum.subscription
      • matrix42.silverback.subscription
      • matrix42.uux.subscription
  • Navigate to Admin
    • You should see now your previously entered administrative username

Change your current guest password

  • Select your guest account
  • Expand Update this user
  • Enter a new password, e.g. Pa$$w0rd
  • Confirm your password, e.g. Pa$$w0rd
  • Press Update user
  • Log out and Login with the new credentials
  • Log out and Login with the recently created account during the script execution

You can also delete the guest user as this user must only be used during installation from and to localhost (https://www.rabbitmq.com/access-control.html).

Additional Notes and Next Steps

  • When installing the RabbitMQ Server on the same server as Empirum make sure that the Matrix42 Empirum Service Bus Service is set for delayed startup.
  • In case you are not using Empirum or you have additionally EgoSecure Data Protection in place, ensure to remove or add the queues as explained in Adjust Queues
  • If you don't adjust the Queues and you are not using Empirum as an example, the created Empirum queue will ultimately collect all messages that are exchanged via RabbitMQ between the Unified User Experience (Service Store) and Silverback. This will cause a huge amount of resource consumption. 
  • Keep your Connection String ready and proceed with entering the Connection String into the different products as shown in the Enterprise Service Bus Guide

Adjust Queues

In case you are not utilizing Empirum or SIlverback or you have additionally EgoSecure Data Protection in place, you should consider to modify your created Queues.

Delete created queues

  • Use a web browser of choice and open: http://localhost:15672
  • Login with your username and password
  • Navigate to Queues
  • Select the matrix42.silverback.subscription
  • Expand Delete, press Delete Queue and confirm with OK

Add additional queues 

By default, queues for the Unified User Experience (Service Store), Empirum and Silverback are created. Additionally required queues can be created, e.g. if you are using EgoSecure Data Protection: 

  • Select Queues
  • Press add a new queue
  • Select your previously created Virtual Host, e.g. matrix42
  • Type in matrix42.egocesure.subscription in the name field
  • Click on Message TTL and enter 2419200000 in the value field (this is the time in milliseconds how long messages stays in the queue if no one retrieves them)
  • Click Add Queue
  • Select the new queue in the table
  • Expand Bindings
  • Enter the exchange name i.e. matrix42.suem.topic in the From exchange field
  • Click Bind

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. Please review https://www.rabbitmq.com/uri-spec.html for additional information.

. 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?