Назад | Перейти на главную страницу

Сервер Rabbitmq случайно отключается при запуске сервера

У меня версия сервера Rabbitmq 3.5.7-1ubuntu0.16.04.2 установлен на сервере Ubuntu 16.04. При перезагрузке сервера Rabbitmq случайно не запускается. Сервер Rabbit устанавливается из официального репозитория Ubuntu. Кластеризации нет, это всего лишь один независимый сервер.

Когда возникает проблема, при перезагрузке в Journalctl регистрируется следующее:

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 ... 

В 09:51:29 приложение, которое пытается использовать Rabbit, не может подключиться: [Errno 111] Connection refused

Через несколько секунд Rabbit запускается согласно /var/log/rabbitmq/rabbit@hostname.log:

=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

Но в тот же момент Rabbit переходит в состояние ошибки из-за тайм-аута операции Start-post:

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'.

Вход в систему /var/log/rabbit не показывать никаких предупреждений об ошибках.

Глядя на файл модуля Systemd, я вижу, что операция Startpost выполняет скрипт /usr/lib/rabbitmq/bin/rabbitmq-server-wait который содержит следующий код:

. `dirname $0`/rabbitmq-env
/usr/lib/rabbitmq/bin/rabbitmqctl wait $RABBITMQ_PID_FILE

После этой запущенной команды service rabbitmq-server start запускает службу без проблем.

Я не могу понять, какова цель этой операции Start-post и почему она истекает. Что может быть причиной проблемы и как мне продолжить ее исследование?

Команда RabbitMQ контролирует в rabbitmq-users список рассылки и только иногда отвечает на вопросы по StackOverflow.


Вы используете устаревшую и неподдерживаемую версию RabbitMQ. С тех пор были внесены улучшения в systemd интеграция. Вам следует использовать последнюю версию RabbitMQ с Erlang 19.3 или новее.