Подтвердить что ты не робот

Сервер rabbitmq-server не запускается после первого изменения имени хоста

Я использую django-сельдерей для своего проекта django. В прошлый день я изменил имя компьютера компьютера (я использую Ubuntu 12.04, отредактированный файл "/etc/hostname" ), и после следующего перезапуска django-celery с ошибкой

Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...

После некоторого исследования этой ошибки я обнаружил, что изменение имени моего хоста вызвало эту ошибку от здесь. Мой журнал запуска rabbitmq показывает

file:/var/log/rabbitmq/startup_log

Activating RabbitMQ plugins ...

********************************************************************************
********************************************************************************

0 plugins activated:

ERROR: epmd error for host "jinesh": nxdomain (non-existing domain)

Мой файл startup_err пуст.

когда я запускаю

[email protected]:/home/jinesh# rabbitmqctl list_users
Listing users ...
Error: unable to connect to node [email protected]: nodedown

DIAGNOSTICS
===========

nodes in question: [[email protected]jinesh]

hosts, their running nodes and ports:
- unable to connect to epmd on jinesh: nxdomain

current node details:
- node name: [email protected]
- home dir: /var/lib/rabbitmq
- cookie hash: RGhmB2JR1LbZ57j7xWWTxg==

Я надеюсь, что изменение nodename может решить эту проблему. Но я не мог найти способ сделать это. У кого-нибудь есть идея о том, как решить эту проблему?

Обновление

при изменении имени хоста вы должны изменить файлы /etc/hostname и /etc/hosts.

Я заново установил rabbitmq и решил эту проблему, ответит на этот вопрос.

4b9b3361

Ответ 1

Удалите старую установку RabbitMQ, чтобы устранить эту проблему. Ниже перечислены шаги по переустановке RabbitMQ. Эти команды запускаются как пользователь root:

  • Остановить RabbitMQ: rabbitmqctl stop

  • Изменить /etc/hosts

  • Изменить /etc/hostname

  • Удалите старый RabbitMQ: dpkg -P rabbitmq-server

  • Удалите базу данных RabbitMQs: rm -rf /var/lib/rabbitmq

  • Найдите процесс erlangs, в котором работает кролик: ps ax | grep rabbit

  • Убейте указанный процесс

  • Переустановите RabbitMQ: apt-get install rabbitmq-server

Я написал об этих шагах на мой блог.

ПЕРЕСМОТР

Я перевел свой блог на новый веб-сайт.

Ответ 2

Благодаря Ричарду Х. Фунгу.

Его шаги помогли мне решить эту проблему.

Но мне не нужно было повторно устанавливать rabbitmq.

Когда я открыл свой файл /etc/hosts, я обнаружил, что IP, присвоенный моему имени хоста, отличается от фактического ip(192.168.1.200 [static]).

#/etc/hosts  
127.0.0.1       localhost  
192.168.1.115   HOSTNAME

поэтому я просто изменил IP-адрес на 192.168.1.200 в своем файле /etc/hosts, и он работал нормально.

Ответ 3

Ответ Ричарда хорош, но вы можете потерять некоторую информацию в очередях rabbitmq. Ниже приведен возможный способ сохранить предыдущую настройку rabbitmq с новым именем хоста.

Краткий ответ:

Если вы хотите сохранить новое имя хоста, то вы можете создать файлы rabbitmq-env.conf в /etc/rabbitmq которые ссылаются на старое имя хоста, и все должно быть хорошо. Вот что должно быть в rabbitmq-env.conf:

[email protected]

После добавления файла конфигурации перезапустите сервер rabbitmq, тогда все будет хорошо. (например, service rabbitmq-server restart (может потребоваться sudo с ubuntu))

Более подробную информацию вы можете прочитать на сайте rabbitmq: https://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html

Подробнее об ответе:

У меня были похожие проблемы с именем хоста при использовании CentOS... Основная проблема была в том, что при установке rabbit он ссылается на текущее имя хоста во время установки. Так как это вещь кролика, решение должно работать для других разновидностей Linux. Если вы хотите увидеть полный ответ, вы можете увидеть его по адресу: rabbtimqadmin - Не удалось подключиться: [Errno -2] Имя или служба неизвестна

Ответ 4

Вы можете решить эту проблему, удалив базу данных erlang mnesia, связанную с rabbitmq, или переустановите rabbitmq.

Я получил подсказку для первого решения из списка рассылки rabbitmq. Выдержка из ответа The Erlang Mnesia database is host specific (because it is a distributed DB). The simplest way to get you fixed is to clear out the database dir.

Второй метод - самый простой способ (не рекомендуется). Для удаления выполните

dpkg -P rabbitmq-server

Вы можете ссылаться на эту ссылку если хотите узнать больше об установке/удалении пакетов debian.

Ответ 5

В Windows проблема, с которой я столкнулась, была связана с брандмауэром McAfee. Точной ошибкой была ошибка epmd для хоста "": адрес (невозможно подключиться к хосту/порту)

Он начал работать, как только я отключил брандмауэр

Ответ 6

Удалите базу данных RabbitMQ: rm -rf /var/lib/rabbitmq/*

Это действие решает проблему. Я верю, что где-то в дампах хранится запись с соответствием имен узлов узлов и ips. Этот факт вызывает противоречие, если некоторые хосты неожиданно изменились.

Ответ 7

Моим решением было проверить и исправить $HOSTNAME и /etc/hostname. Оказалось, что мой маршрутизатор немного запутался и дал мне неправильное имя хоста. После перезапуска этого я вызвал export HOSTNAME=the.correct.hostname и мой кролик работает без перезапуска сервера.

Ответ 8

В моем случае у меня не было следующей записи в /etc/hosts:

127.0.0.1 <hostname>

где <hostname> - имя хоста моей машины (как указано командой hostname). После добавления этой строки, RabbitMQ начал успешно. У меня не было никаких ранних установок RabbitMQ.

Ответ 9

У меня была такая же проблема, и я сделал шаги, которые Ричард Х Фунг мне не помог. Мне также пришлось удалить эти пакеты: erlang erlang-epmd rabbitmq-server

zypper remove erlang erlang-epmd rabbitmq-server
rm -rf /var/lib/rabbitmq/*
zypper install erlang erlang-epmd rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

Если у вас есть другая ОС, кроме openSUSE, просто используйте диспетчер пакетов для удаления этих пакетов (например, apt-get)

Ответ 10

Чтобы решить эту проблему, я изменил файл /etc/hostname на новое имя хоста, а затем перезагрузил компьютер. После этого я запустил rm -rf/var/lib/rabbitmq/mnesia/*

Затем перезапустил службу: sudo service rabbitmq-server restart

На данный момент это работает для меня. Если это все еще не работает, измените файл /etc/rabbitmq/rabbitmq-env.conf, добавив эту информацию:

[email protected]_NEW_HOSTNAME
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672

Затем перезапустите службу: перезапустите службу sudo service rabbitmq-server restart

Надеюсь, поможет.

Ответ 11

Единственное решение, которое работает для меня: установить erlang & rabbitmq из deb, поэтому:

Сначала удалите:

apt-get purge rabbitmq-server
apt-get purge erlang
apt-get autoremove
reboot

После установки wget:

sudo apt-get -y install socat logrotate init-system-helpers adduser
sudo apt-get -y install wget

Установите erlang:

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install erlang

Установите rabbitmq:

sudo apt-get update
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.17/rabbitmq-server_3.7.17-1_all.deb
sudo dpkg -i rabbitmq-server_3.7.17-1_all.deb
rm rabbitmq-server_3.7.17-1_all.deb

Ответ 12

Когда в Windows (извините за это - я понимаю, что тема для Ubuntu) просто переустановите службу RabbitMQ:

rabbitmq-service.bat remove
rabbitmq-service.bat install

Сценарий находится в папке C:\Program Files\RabbitMQ Server\rabbitmq_server-<version>\sbin.

Или может быть достаточно просто изменить значение HKEY_LOCAL_MACHINE\SOFTWARE\Ericsson\Erlang\ErlSrv\1.1\RabbitMQ\@SName.

Ключи: https://github.com/rabbitmq/rabbitmq-server/issues/620

Ответ 13

Проверьте qpidd-демона, он также может зависеть от порта, который нужен rabbitmq.

sudo netstat -lnp