Кластеризация RabbitMQ SSL в Windows ломает rabbitmqctl

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

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

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

  1. Объединил содержимое моего сервера\cert.pem и server\key.pem в rabbit.pem с помощью команды «введите server\cert.pem server\key.pem > server\rabbit.pem»
  2. Создана переменная окружения ERL_SSL_PATH и задано значение: «C:/Program Files/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 client_secure_renegotiate true
  4. Создана переменная среды RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS и задано то же значение, что и для RABBITMQ_CTL_ERL_ARGS.
  5. Скопировал файл cookie erlang в C:\Windows.erlang.cookie в мой локальный каталог профиля пользователя.
  6. Перезапустил кролика, используя запуск rabbitmq-service
  7. На данный момент на server1 больше не работает «статус Rabbitmqctl». Попытки присоединить server2 к server1 приводят к ошибке "node down".

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

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

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


person Andy    schedule 18.10.2016    source источник


Ответы (1)


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

Это будет делать:

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

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

rabbitmqctl force_boot

Проверьте журналы для подтверждения. (в %RABBIT_BASE%\log\[email protected])


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

person Omar Ajlouny    schedule 17.06.2017