Кластеризация SSL RabbitMQ в Windows нарушает rabbitmqctl

#rabbitmq #rabbitmqctl

#rabbitmq #rabbitmqctl

Вопрос:

Я пытаюсь следовать инструкциям в документах RabbitMQ здесь, чтобы кластеризация с SSL работала в Windows. Однако я замечаю, что команда «rabbitmqctl status» начинает завершаться сбоем после установки переменных среды, определенных на этих этапах. При выполнении «rabbitmqctl status» я получаю следующую ошибку:

 Error: unable to connect to node 'rabbit@server1': nodedown
  

Я уже настроил RabbitMQ на использование TLS 1.2 и убедился, что он работает. Я убедился, что мой файл cookie Erlang 18 одинаков в каталоге пользователя C:usersme и C:Windows на компьютере, но ошибка сохраняется и мешает другим серверам объединяться с ней в кластеры. В документах говорится, что настройка кластера SSL Windows «скоро появится»… Вот шаги, которые я предпринял до сих пор на server1. Я думаю, что Erlang хочет, чтобы в путях были косые черты — это соответствует настройкам SSL rabbit.config.

  1. Объединил содержимое моего server cert.pem и server key.pem в rabbit.pem с помощью команды «введите server cert.pem serverkey.pem > server rabbit.pem»
  2. Создал переменную среды ERL_SSL_PATH и установил значение: «C:/Program Файлы/erl7.0/lib/ssl-7.0/ebin»
  3. Создана переменная среды RABBITMQ_CTL_ERL_ARGS и установлена в: -pa «%ERL_SSL_PATH%» -proto_dist inet_tls -ssl_dist_opt server_certfile C:/OpenSSL-Win64/server/rabbit.pem -ssl_dist_opt server_secure_renegotiate true клиент_secure_renegotiate true
  4. Создана переменная среды RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS и установлена в то же значение, что и RABBITMQ_CTL_ERL_ARGS
  5. Скопировал файл cookie erlang в C:Windows.erlang.cookie в мой локальный каталог профилей пользователей.
  6. Перезапущенный rabbit с помощью rabbitmq-запуск службы
  7. На данный момент на сервере 1 «статус rabbitmqctl» больше не работает. Попытки попытаться соединить server2 с server1 приводят к ошибке «node down».

Редактировать 1: я не могу выполнить начальный шаг в документации, чтобы попросить Erlang сообщить о своем каталоге SSL в Windows, чтобы правильно установить ERL_SSL_PATH. Erlang установлен на C:Program Fileserl7.0 на моем сервере.

Редактировать 2: использование werl.exe (в C:Program Fileserl7.0binwerl.exe ), я смог выдать команду «Foo=io:format(code:lib_dir(ssl, ebin))». и он сообщил путь следующим образом: c:/Program Файлы/erl7.0/lib/ssl-7.0/ebin. Однако, похоже, это не является причиной этой проблемы, поскольку это уже то, что я использовал.

Спасибо, Энди

Ответ №1:

Чтобы изменения среды вступили в силу в Windows, необходимо переустановить службу. Недостаточно перезапустить службу. Это можно сделать с помощью программы установки или в командной строке с правами администратора (источник)

Это сделает:

 rabbitmq-service.bat stop
rabbitmq-service.bat remove
rabbitmq-service.bat install
rabbitmq-service.bat start
  

Кроме того, если во время работы узла, над которым вы работаете, другие узлы кластера были запущены, можно предположить, что их состояние не синхронизировано. В этом случае узел может не запуститься, и вам может потребоваться:

 rabbitmqctl force_boot
  

Проверьте журналы для подтверждения. (в %RABBIT_BASE%lograbbit@server.log )


Поздний ответ, но, надеюсь, это может помочь поисковику…