Hello! I'm using rabbitmq in a docker container, using official `rabbitmq:management` image. It ships with very good defaults and I was able to use it almost exactly as is. So far, I use rabbitmq as a message broker for my Celery set up. I have literally just a few queues and a few messages per day so far.
There is 1 problem though. I deploy rabbitmq service to
render.com. It works just fine, as expected UNTIL the web management UI becomes unresponsive. But it's just the UI that becomes unresponsive. The queues still work just fine. Having said that, this becomes a big problem on
render.com - it uses a health check mechanism where it will try to access the management plugin page (which is publicly available) and if it does not return HTTP 200, it will assume the service is dead and will restart it. RabbitMQ get's a SIGTERM and restarts. This does not ammend the web UI being unresponsive and thus leads to a restart loop. The only way we have to resolve this is to rebuild the service image - this causes a fresh start and web UI works again.
As a temporary workaround, I have disabled the health check so our service is not continuously restarted when the management UI becomes unresponsive.
My dockerfile:
FROM rabbitmq:management
WORKDIR /foo
COPY deployment/rabbitmq/rabbitmq.conf /etc/rabbitmq/
ENV RABBITMQ_NODENAME=rabbit@localhost
RUN chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.conf
USER rabbitmq:rabbitmq
My rabbitmq config:
loopback_users.guest = false
listeners.tcp.default = 5672
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
# So that Celery tasks scheduled into the future using eta/countdown execture correctly.
consumer_timeout = 63244800000
Any ideas how I can stop this from happening? Any idea what's causing it? Next time it happens, what kind of information (and how) should I gather to find out the root cause?
Thanks,
Bartosz