RabbitMQ, erlang: как «убедиться, что файлы cookie erlang совпадают» - PullRequest
29 голосов
/ 12 марта 2012

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

C:\Users\BuildnTest2>rabbitmqctl status
Status of node 'rabbit@BUILDNTEST2-PC' ...
Error: unable to connect to node 'rabbit@BUILDNTEST2-PC': nodedown diagnostics:
- nodes and their ports on BUILDNTEST2-PC: [{rabbit,49164},
                                        {rabbitmqctl27693,49286}]
- current node: 'rabbitmqctl27693@BuildnTest2-PC'
- 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.

Что это значит икак это сделать?

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

Ответы [ 11 ]

16 голосов
/ 23 октября 2015

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

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

12 голосов
/ 21 июля 2016

Для тех, кто прибегает к помощи, такая же ошибка cookie erlang может произойти, если вы пропустите параметр 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

9 голосов
/ 31 января 2018

Что бы это ни стоило, в 2018 году документы НЕПРАВИЛЬНЫ. В windows 10 расположение файла cookie по умолчанию выглядит следующим образом:

C:\Windows\System32\config\systemprofile

и НЕ

C:\Windows

как говорят документы.

Лучше всего взглянуть на файл журнала, который обычно находится в вашем каталоге пользователя %AppData%\Roaming\RabbitMQ\log.

Файл журнала содержит эту запись, которая помогла мне определить местоположение файла cookie:

node           : rabbit@computername
home dir       : C:\WINDOWS\system32\config\systemprofile
9 голосов
/ 14 марта 2012

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

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

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

9 голосов
/ 13 марта 2012

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

4 голосов
/ 28 октября 2016

Синхронизация файлов cookie Erlang (при запуске установленной вручную службы Windows) Файлы cookie Erlang Security, используемые учетной записью службы и пользователем, работающим с rabbitmqctl.bat, должны быть синхронизированы, чтобы 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

2 голосов
/ 05 апреля 2017

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

1 голос
/ 12 июня 2017

Я пытался кластеризовать, и даже когда 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

1 голос
/ 18 мая 2017

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

1 голос
/ 19 февраля 2014

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

Файл rabbitmq erlang cookie ...

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

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

...