Difference between revisions of "AMQP server: RabbitMQ"
(Created page with " ----------------------------- Requirements ----------------------------- # PostgreSQL + Python sudo apt-get install postgresql python3 sudo apt-get install python3-amqplib ...") |
|||
Line 1: | Line 1: | ||
+ | [[Category:Linux]] | ||
+ | [[Category:Development]] | ||
− | - | + | RabbitMQ is an excellent low-level messaging server. You can use it with different technologies. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | --- | + | |
− | + | =Requirements= | |
− | + | ||
+ | You need PostgreSQL + Python | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | apt-get install postgresql python3 | ||
+ | apt-get install python3-amqplib | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | =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] | [source: http://www.rabbitmq.com/install-debian.html] | ||
− | |||
− | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | vim /etc/apt/sources.list | ||
+ | <syntaxhighlight> | ||
+ | |||
+ | |||
+ | Add the new repository | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
deb http://www.rabbitmq.com/debian/ testing main | deb http://www.rabbitmq.com/debian/ testing main | ||
+ | </syntaxhighlight> | ||
− | + | Add repo key | |
− | |||
− | + | <syntaxhighlight lang="bash"> | |
− | |||
wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc | wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc | ||
sudo apt-key add rabbitmq-signing-key-public.asc | sudo apt-key add rabbitmq-signing-key-public.asc | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | Update package list | ||
− | + | <syntaxhighlight lang="bash"> | |
sudo apt-get update | sudo apt-get update | ||
+ | </syntaxhighlight> | ||
+ | |||
− | + | ==Binary installation== | |
− | |||
− | |||
− | + | <syntaxhighlight lang="bash"> | |
− | + | apt-get install rabbitmq-server amqp-tools | |
+ | </syntaxhighlight> | ||
− | + | ||
− | Enable plugins | + | ==Enable plugins== |
− | + | ||
− | + | Enable RabbitMQ command line client | |
− | + | ||
− | + | <syntaxhighlight lang="bash"> | |
rabbitmq-plugins enable amqp_client | rabbitmq-plugins enable amqp_client | ||
− | + | </syntaxhighlight> | |
+ | |||
+ | |||
+ | Enable web console | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
rabbitmq-plugins enable rabbitmq_management | rabbitmq-plugins enable rabbitmq_management | ||
− | + | </syntaxhighlight> | |
+ | |||
+ | |||
+ | Restart server to take on your changes | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
service rabbitmq-server restart | service rabbitmq-server restart | ||
+ | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | + | Now you can access RabbitMQ using the default ports: | |
− | + | * Web console: TCP 15672, http://localhost:15672/ | |
− | + | * AMQP Messages: TCP 5672 | |
− | |||
− | |||
− | + | ||
+ | ==Create administration user== | ||
+ | |||
+ | Create new user, replace ''rtd'' by your username. | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | rabbitmqctl add_user rtd strong_password | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | Set user rights | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
rabbitmqctl set_user_tags rtd administrator | rabbitmqctl set_user_tags rtd administrator | ||
rabbitmqctl set_permissions -p / rtd ".*" ".*" ".*" | rabbitmqctl set_permissions -p / rtd ".*" ".*" ".*" | ||
+ | </syntaxhighlight> | ||
− | + | ||
+ | Remove default guest user | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
rabbitmqctl delete_user guest | rabbitmqctl delete_user guest | ||
+ | </syntaxhighlight> | ||
− | + | ||
+ | Restart service to take on your changes | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
service rabbitmq-server restart | service rabbitmq-server restart | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | |||
+ | =Advanced configuration= | ||
+ | |||
+ | ==Change port number== | ||
+ | |||
+ | source: https://www.rabbitmq.com/configure.html | ||
+ | |||
− | + | If activeMq is install, stop it | |
− | |||
− | |||
− | |||
− | + | <syntaxhighlight lang="bash"> | |
service activemq stop | service activemq stop | ||
+ | </syntaxhighlight> | ||
sudo vim /etc/rabbitmq/rabbitmq-env.conf | sudo vim /etc/rabbitmq/rabbitmq-env.conf |
Revision as of 14:58, 11 July 2014
RabbitMQ is an excellent low-level messaging server. You can use it with different technologies.
Contents
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:
- Web console: TCP 15672, http://localhost:15672/
- AMQP Messages: TCP 5672
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
- Add the following at the beggining of the file
NODE_PORT=5673
- restart services
service rabbitmq-server restart service activemq start
Firewall
- open firewall ports
vi /etc/init.d/firewall
- add this rules
- rabbitMq
$IPT -A INPUT -p tcp --dport 15672 -j ACCEPT $IPT -A INPUT -p tcp --dport 5673 -j ACCEPT
- 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