Installing RabbitMQ on Windows

I’ve had to get RabbitMQ up and running on Windows a couple of times the last few weeks and instead of fumbling my way through it again, I captured the steps for a walkthrough. Here’s the rundown for how to install and configure RabbitMQ on Windows.

NOTE: This is just to install a single RabbitMQ node with no clustering.

Install Erlang

The first thing to know is that RabbitMQ runs on top of the Erlang virtual runtime. Erlang is a functional programming language with an emphasis on concurrency and high-availability and is well suited for something such as high-volume queuing. You can download Erlang here.

Once Erlang is installed, verify that the ERLANG_HOME path has been added to your system environment variables. If it hasn’t, manually add it with its value being the full path to the Erlang directory:

erlang-home-path

Install RabbitMQ

With the Erlang runtime installed, download and install RabbitMQ. No tips or anything fancy here, just click through the installer. You should now see RabbitMQ listed and running as a service on your machine.

Open Ports

To ensure everything will work properly, you need to add some inbound rules to your Windows firewall.

The first one is for RabbitMQ, which uses 5672 as its main port and 15672 for its web admin:

Rule Type Port
Protocols and Ports TCP
Specified local ports 5672, 15672
Action Allow the connection
Profile Domain, Private, Public
Name RabbitMQ

The next three are for Erlang:

Rule Type Program
Program path %ProgramFiles%\erl7.2.1\bin\erl.exe
Action Allow the connection
Profile Domain, Private, Public
Name Erlang
Rule Type Program
Program path %ProgramFiles%\erl7.2.1\erts-7.2.1\bin\erl.exe
Action Allow the connection
Profile Domain, Private, Public
Name Erlang Run-Time System
Rule Type Program
Program path %ProgramFiles%\erl7.2.1\erts-7.2.1\bin\epmd.exe
Action Allow the connection
Profile Domain, Private, Public
Name Erlang Port Mapper Daemon

Enable Management Plugin

RabbitMQ provides a handy web admin to manage its queues, but it’s turned off by default. RabbitMQ comes with a management plugin that you need to enable from the command line:

1. Open a command prompt as administrator.

2. Navigate to “C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.0\sbin” (or whichever your version is).

3. At the prompt, type the following:

rabbitmq-plugins enable rabbitmq_management

4. If you see a message saying “could not contact node” or “unable to connect to node”, you might need to set the HOMEDRIVE before running the previous command, which would also entail restarting the service, as such (more details in this Stack Overflow post):

SET HOMEDRIVE=C:
rabbitmq-plugins enable rabbitmq_management
rabbitmq-service stop
rabbitmq-service install
rabbitmq-service start

5. Now at the command prompt, type the following:

rabbitmqctl status

If you see output of configuration info then you’re good.

Login to Web Admin

You can view the RabbitMQ web admin by pointing your browser at http://localhost:15672/. To login, use guest for both the username and password and you should see something like this:

rabbitmq-web-admin

Add Admin User

The guest account is fine for logging into the RabbitMQ web admin on the local machine, but you might want to create a different admin account to login and use from applications that interact with the queue. Just do the following:

1. Go to the Admin tab.

2. Expand the Add a user section.

3. Enter a username and password, then click the Admin link below the Tags textbox. This will populate the Tags textbox with administrator. Click Add User.

4. You should see the new user in the list of users table with No access under Can access virtual hosts. Click the username of the new user.

5. Ensure / is selected in the Virtual Host dropdown list then click Set Permission.

6. Now click the Admin tab and you should see the new user with / as the value under Can access virtual hosts.

And that does it for this little walkthrough, enjoy!

Featured Image: Some rights reserved by adewale_oshineye

6 comments

  1. Jedidja Bourgeois says:

    Great summary of getting things going on Windows! It looks like currently you don’t even need an admin prompt – you can use “RabbitMQ Command Prompt” and still get the web admin installed.

  2. Aditya says:

    Great little article, all the other places I searched did not include detailed steps for opening the ports!
    Much appreciated

  3. Mark E. says:

    Thank you very much for the explanation on the Erlang properties. My cluster kept removing one of the nodes in my three node cluster. After setting the inbound rules in the firewall for Erlang, it worked perfectly. All other sources did not mention this. Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *