#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.
- Объединил содержимое моего server cert.pem и server key.pem в rabbit.pem с помощью команды «введите server cert.pem serverkey.pem > server rabbit.pem»
- Создал переменную среды ERL_SSL_PATH и установил значение: «C:/Program Файлы/erl7.0/lib/ssl-7.0/ebin»
- Создана переменная среды 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
- Создана переменная среды RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS и установлена в то же значение, что и RABBITMQ_CTL_ERL_ARGS
- Скопировал файл cookie erlang в C:Windows.erlang.cookie в мой локальный каталог профилей пользователей.
- Перезапущенный rabbit с помощью rabbitmq-запуск службы
- На данный момент на сервере 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 )
Поздний ответ, но, надеюсь, это может помочь поисковику…