[rabbitmq-discuss] unable to cluster rabbitmq on ec2

Tim Watson tim at rabbitmq.com
Thu Jul 19 11:13:27 BST 2012


On 07/19/2012 10:18 AM, avinash0601 wrote:
> hey Tim,

Hi!

> i have 3 instances for clustering on ec2.
> i dont want to use the hostnames provided by amazon so my hostnames now are
> rabbit1, rabbit2&  rabbit3.

Ok. You've set this up how? What OS are you running, what does the 
/etc/hosts look like?

> i have restricted epmd communication to ports 9100-9105 in
> /usr/lib/erlang/bin/sys.config by making en entry
> *[{kernel,[{inet_dist_listen_min, 9100},{inet_dist_listen_max,9105}]}].*

Well that doesn't actually control what ports epmd uses, but the ports 
on which the node started with these kernel parameters will accept 
connections from other nodes that are registered with the port mapper 
daemon. The port on which epmd listens is controlled by either passing 
-port <port-num: default=4369> or setting tghe ERL_EPMD_PORT environment 
variable.

> opened ports 5672, 55672, 4369, 9100-9105 on all 3 instances.

On each machine that will host distributed Erlang nodes, the naming 
server (epmd) must be running. If you wish to inter-connect nodes 
between these machines, their epmd instances must be accessible to the 
outside world (on whatever port(s) they're running on). These (epmd) 
ports have to be open, and the cookie security system ensures that 
unauthorised connections to nodes on the individual hosts are disallowed.

If the port that epmd is running on for each of these instances is not 
open, then clustering will not work, as the nodes will not be able to 
communicate.
> so on rabbit1 i did stop_app, reset&  then trying to create a cluster by
> *rabbitmqctl cluster rabbit at rabbit2 rabbit at rabbit1* its saying
> *Clustering node rabbit at rabbit1 with [rabbit at rabbit2,rabbit at rabbit1] ...
> Error: {no_running_cluster_nodes,[rabbit at rabbit2],[rabbit at rabbit2]}*
> do i need to do something else.

Check that epmd on each node is accessible from all the others. You can 
do this by attempting to telnet from the other nodes: `telnet rabbit1 
4369` should succeed.



More information about the rabbitmq-discuss mailing list