Eu tenho a versão do servidor Rabbitmq 3.5.7-1ubuntu0.16.04.2
instalada no servidor Ubuntu 16.04.
Quando o servidor é reinicializado, o Rabbitmq falha ao iniciar aleatoriamente.
O servidor Rabbit é instalado a partir do repositório oficial do Ubuntu.
Não há armazenamento em cluster, é apenas um servidor independente.
Quando o problema acontece, isso é o que é registrado no Journalctl na reinicialização:
Jun 03 09:50:52 hostname systemd[1]: Starting RabbitMQ Messaging Server...
...
Jun 03 09:51:23 hostname rabbitmq[1067]: Waiting for 'rabbit@hostname' ...
Jun 03 09:51:24 hostname rabbitmq[1067]: pid is 2455 ...
Às 09:51:29 aplicativo que tenta usar o Rabbit não consegue se conectar: [Errno 111] Connection refused
Alguns segundos depois O coelho é iniciado de acordo com /var/log/rabbitmq/[email protected]
:
=INFO REPORT==== 3-Jun-2018::09:52:22 ===
Server startup complete; 6 plugins started.
* rabbitmq_management
* rabbitmq_web_dispatch
* webmachine
* rabbitmq_management_agent
* mochiweb
* amqp_client
Mas no mesmo momento, o Rabbit entra em estado de erro devido ao tempo de início e término da operação:
Jun 03 09:52:22 hostname systemd[1]: rabbitmq-server.service: Start-post operation timed out. Stopping.
Jun 03 09:52:22 hostname systemd[1]: Failed to start RabbitMQ Messaging Server.
Jun 03 09:52:22 hostname systemd[1]: rabbitmq-server.service: Unit entered failed state.
Jun 03 09:52:22 hostname systemd[1]: rabbitmq-server.service: Failed with result 'timeout'.
Os registros em /var/log/rabbit
não mostram nenhum aviso de erros.
Olhando para o arquivo da unidade Systemd, vejo que a operação Startpost executa o script /usr/lib/rabbitmq/bin/rabbitmq-server-wait
, que contém o seguinte código:
. 'dirname $0'/rabbitmq-env
/usr/lib/rabbitmq/bin/rabbitmqctl wait $RABBITMQ_PID_FILE
Após este serviço de comando em execução, o rabbitmq-server start inicia o serviço sem problemas.
Não consigo entender qual é o objetivo desta operação de início e por que está expirando.
O que poderia estar causando o problema e como devo proceder para pesquisá-lo?