[rabbitmq-discuss] F5 Load Balancer Pool Management

Simon Lundström simlu at su.se
Wed May 22 06:47:37 BST 2013

Morning Ron!

We're just in the middle of implementing RabbitMQ cluster by using our
F5 BIG-IP loadbalancers.

The idea is to have two healthchecks:

1, One very simple which connects to the node and sees that the "path is
clear", i.e. that no firewall etc is blocking the connection to the
node. This is being done by sending eight random bytes to the AMQP port
(we're using SSL) and the server should respond with AMQP0091 (see,
<https://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf> section 4.2.2 Protocol

The problem with this is that it creates alot of log noise and I'm not
sure how to filter this out or how to generate a smart enough request
that RabbitMQ won't generate log noise.

2, The other health check is more complex and we want to check that a
node is really up and that it accepts messages. As BIG-IP doesn't
support AMQP OOTB we only found two other solutions:
* Write and compile a static C-binary which does the check and speaks
the AMQP protocol
* Put a Nagios NRPE check on the host which does the check and use the
BIG-IP to do a NRPE request to the node.

While the first solution seems ideal we don't want to complicate our
BIG-IP setup (i.e. put files on it) so we chose the latter.

I created a Perl-script <https://github.com/simmel/create_nrpe_request>
that can create the binary request that NRPE uses so it can be used in
the BIG-IP.

Healthcheck #2 is done but I'm still trying to make #1 smarter and not
create log noise.
Any ideas here from you or others?

- Simon


Simon Lundström
Section for Infrastructure

IT Services
Stockholm University
SE-106 91 Stockholm, Sweden



More information about the rabbitmq-discuss mailing list