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

RabbitMQ, erlang: как "убедиться, что cookie erlang одинаково",

Я использую rabbitMQ с grails, и проблема возникла сегодня утром. Когда я запускаю статус rabbitmqctl, он говорит мне:

C:\Users\BuildnTest2>rabbitmqctl status
Status of node '[email protected]' ...
Error: unable to connect to node '[email protected]': nodedown diagnostics:
- nodes and their ports on BUILDNTEST2-PC: [{rabbit,49164},
                                        {rabbitmqctl27693,49286}]
- current node: '[email protected]'
- current node home dir: C:\Users\BuildnTest2
- current node cookie hash: cSYB8tsT4mGGZHSUGQi08w==

Когда я перехожу на страницу поиска кроликов: http://www.rabbitmq.com/troubleshooting.html, они говорят:

then you should make sure the erlang cookies are the same.

Что это значит и как это достигается?

Googling нашел этот форум http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2011-January/010806.html, который утверждает, что имеет инструкции по решению этой проблемы, но, увы, он просто перенаправляет обратно на сайт кролика, где нет ответ.

4b9b3361

Ответ 1

Окончательный ответ на ваш конкретный вопрос на сайте RabbitMQ находится на http://www.rabbitmq.com/clustering.html

Однако из вашего дампа статуса это выглядит не так, как будто это ваша проблема. Кажется, что ваш node не работает. Правильно ли я предполагаю, что вы не используете кластер? Тот факт, что node, с которым вы не можете подключиться, совпадает с тем, который вы используете для команд, указывает на это.

Если служба RabbitMQ запущена, запустите запуск rabbitmqctl Если он не запущен, перейдите к услугам и запустите его, а затем выше. Файл cookie erlang не имеет отношения к некластеризованным конфигурациям.

Ответ 2

В моем случае, по какой-то причине cookie (.erlang.cookie), хранящийся в C:\Windows\, отличается от того, который я сохранил в моем доме (%HOMEDRIVE% %HOMEPATH%, для меня это было C:\).

Как только я скопировал файл cookie из C:\Windows в мою домашнюю папку, все начало работать.

Ответ 3

В домашнем каталоге пользователя, выполняющего процесс erlang, есть скрытый файл .erlang.cookie. Он содержит строку, которая отвечает за топологию кластера erlang. Убедитесь, что строка (cookie) одинакова для всех узлов, которые вы хотите подключить. Если cookie не существует, создайте его.

Ответ 4

Для тех, у кого есть googling, эта же ошибка erlang cookie может произойти, если вам не хватает параметра HOME из конфигурации вашей среды. Например, при установке ArchLinux по умолчанию в rabbitmq.

В этом случае служба запускается с systemctl start rabbitmq и генерирует файл cookie, но инструменты cli, такие как rabbitmqctl status, не будут работать из коробки, потому что они не знают домашнего местоположения.

по умолчанию/etc/rabbitmq/rabbitmq-env.conf

NODENAME=rabbit
NODE_IP_ADDRESS=0.0.0.0
NODE_PORT=5672

LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia

изменен/etc/rabbitmq/rabbitmq-env.conf

NODENAME=rabbit
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672

HOME=/var/lib/rabbitmq
LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia

ref https://bbs.archlinux.org/viewtopic.php?id=191587

Ответ 5

Синхронизировать файлы cookie Erlang (при запуске вручную установленной службы Windows) Для работы функции rabbitmqctl.bat необходимо синхронизировать файлы cookie Erlang Security, используемые учетной записью службы, и пользователя, выполняющего rabbitmqctl.bat. Чтобы файлы cookie Erlang содержали одну и ту же строку, скопируйте файл .erlang.cookie из каталога Windows (обычно C:\WINDOWS.erlang.cookie), чтобы заменить пользователя .erlang.cookie. Пользователь cookie будет находиться в домашнем каталоге пользователя (% HOMEDRIVE %% HOMEPATH%), например. C:\Documents and Settings\%USERNAME%.erlang.cookie или C:\Users\%USERNAME%.erlang.cookie(Windows Vista и более поздние версии).

https://www.rabbitmq.com/install-windows-manual.html

Ответ 6

Убедитесь, что rabbitmq erlang.cookie соответствует файлу erlang.cookie в каталоге пользователя:

Крбилиц-эрланг-печенье...

... будет обычно находиться в /var/lib/rabbitmq/.erlang.cookie on Unix и C:\Users\Current User.erlang.cookie или C:\Documents и Settings\Current User.erlang.cookie в системах Windows. (http://www.rabbitmq.com/clustering.html#setup)

Убедитесь, что совпадают с ~/.erlang.cookie.

Ответ 7

Я скопировал файл cookie из C:\Windows в свою домашнюю папку ( C:\Users\Current User\.erlang.cookie), и все стало нормально работать.

Ответ 8

Я пытался сгруппировать, и даже когда файлы cookie соответствовали ему, это не сработало бы для меня... единственное, что в конечном итоге работало, это установить переменную ERLANG_HOME в переменных среды.

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

"Установите ERLANG_HOME в место, где вы фактически разместили свою установку Erlang, например C:\Program Files\erlx.xx(полный путь). Пакетные файлы RabbitMQ ожидают выполнения% ERLANG_HOME%\bin\erl.exe.

Перейдите в меню "Пуск" > "Настройка" > "Панель управления" > "Система" > "Дополнительно" > "Переменные среды". Создайте переменную системной среды ERLANG_HOME и установите ее в полный путь к каталогу, который содержит bin\erl.exe. "

https://www.rabbitmq.com/install-windows-manual.html

Ответ 9

Я наблюдал эту проблему, когда клон-сервер стал живым с изменением имени. Проблема решена после чистой установки rabbitmq и erlang.

Ответ 10

Если вы запустите версию сервера rabbitmq-сервера MacPorts на OSX, вам необходимо проверить файл ~ rabbitmq/.erlang.cookie. Он должен соответствовать таковому в файле /opt/local/var/lib/rabbitmq/.erlang.cookie, иначе "rabbitmqctl" не сможет подключиться.