AMQP server: RabbitMQ

Revision as of 14:58, 11 July 2014 by WikiFreak (talk | contribs)


RabbitMQ is an excellent low-level messaging server. You can use it with different technologies.


Requirements

You need PostgreSQL + Python

apt-get install postgresql python3
apt-get install python3-amqplib


Installation

Add repository

You must add a new repository for RabbitMQ.

  • Even though the name is "testing" it's actually the latest stable version
  • They use "testing" as this is not in the "main" Ubuntu repo yet.

[source: http://www.rabbitmq.com/install-debian.html]


vim /etc/apt/sources.list
<syntaxhighlight>


Add the new repository

<syntaxhighlight lang="bash">
deb http://www.rabbitmq.com/debian/ testing main


Add repo key

wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo apt-key add rabbitmq-signing-key-public.asc


Update package list

sudo apt-get update


Binary installation

apt-get install rabbitmq-server amqp-tools


Enable plugins

Enable RabbitMQ command line client

rabbitmq-plugins enable amqp_client


Enable web console

rabbitmq-plugins enable rabbitmq_management


Restart server to take on your changes

service rabbitmq-server restart


Now you can access RabbitMQ using the default ports:


Create administration user

Create new user, replace rtd by your username.

rabbitmqctl add_user rtd  strong_password


Set user rights

rabbitmqctl set_user_tags rtd administrator
rabbitmqctl set_permissions -p / rtd ".*" ".*" ".*"


Remove default guest user

rabbitmqctl delete_user guest


Restart service to take on your changes

service rabbitmq-server restart


Advanced configuration

Change port number

source: https://www.rabbitmq.com/configure.html


If activeMq is install, stop it

service activemq stop

sudo vim /etc/rabbitmq/rabbitmq-env.conf

  1. Add the following at the beggining of the file

NODE_PORT=5673

  1. restart services

service rabbitmq-server restart service activemq start



Firewall


  1. open firewall ports

vi /etc/init.d/firewall

  1. add this rules
  2. rabbitMq

$IPT -A INPUT -p tcp --dport 15672 -j ACCEPT $IPT -A INPUT -p tcp --dport 5673 -j ACCEPT


  1. Output

DO NOT FILTER OUTPUT since RabbitMQ port is dynamic. :(



Update startup


cd /etc/init.d/ update-rc.d rabbitmq-server defaults



Sources: https://www.rabbitmq.com/management-cli.html https://www.rabbitmq.com/configure.html https://www.rabbitmq.com/tutorials/tutorial-two-python.html