Отказ в соединении при попытке запустить Rabbitmq

Недавно я установил Rabbitmq 3.6.2 на Ubuntu 14, но всякий раз, когда я запускаю команду rabbitmq-server, возникает ошибка:

{error_logger,{{2016,7,5},{13,45,12}},"Protocol: ~tp: register/listen error: ~tp~n",["inet_tcp",econnrefused]}
{error_logger,{{2016,7,5},{13,45,12}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.21.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,320}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}},{ancestors,[net_sup,kernel_sup,<0.10.0>]},{messages,[]},{links,[#Port<0.93>,<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,376},{stack_size,27},{reductions,805}],[]]}
{error_logger,{{2016,7,5},{13,45,12}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[[rabbitmqprelaunch1853,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
{error_logger,{{2016,7,5},{13,45,12}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
{error_logger,{{2016,7,5},{13,45,12}},crash_report,[[{initial_call,{application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}},{pid,<0.9.0>},{registered_name,[]},{error_info,{exit,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}},{kernel,start,[normal,[]]}},[{application_master,init,4,[{file,"application_master.erl"},{line,133}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}},{ancestors,[<0.8.0>]},{messages,[{'EXIT',<0.10.0>,normal}]},{links,[<0.8.0>,<0.7.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,376},{stack_size,27},{reductions,117}],[]]}
{error_logger,{{2016,7,5},{13,45,12}},std_info,[{application,kernel},{exited,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}},{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}},{kernel,start,[normal,[]]}}}"}

Я проверил iptables, там нет правил. Я уверен, что rabbitmq не запущен и порт доступен. Я не гуру линукса, поэтому не знаю, где искать.

ОБНОВЛЕНО:

Папка /etc/rabbitmq пуста, возможно, потому что не закончил настройку с помощью apt-get (и нет rabbitmq-env.conf):

Setting up rabbitmq-server (3.6.2-1) ...
* Starting message broker rabbitmq-server
* FAILED - check /var/log/rabbitmq/startup_\{log, _err\} [fail]
invoke-rc.d: initscript rabbitmq-server, action "start" failed.
dpkg: error processing package rabbitmq-server (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
rabbitmq-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Мой ifconfig выглядит так (добавлен xx в IP-адрес из соображений конфиденциальности):

 lo Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:56 errors:0 dropped:0 overruns:0 frame:0
      TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:2800 (2.8 KB)  TX bytes:2800 (2.8 KB)

 venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
      UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
      RX packets:7323 errors:0 dropped:0 overruns:0 frame:0
      TX packets:8256 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:919045 (919.0 KB)  TX bytes:1688814 (1.6 MB)

 venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:185.xx.xx.176  P-t-P:185.xx.xx.176  Bcast:185.xx.xx.176  Mask:255.255.255.255
      UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

Спасибо!


person Tadas Stra    schedule 05.07.2016    source источник
comment
Пожалуйста, сообщите результат epmd -debug   -  person rpadovani    schedule 05.07.2016
comment
Вот вывод epmd -debug: epmd: вт, 5 июля, 15:55:10 2016: epmd работает — демон = 0 epmd: вт, 5 июля, 15:55:10, 2016: ошибка при открытии потокового сокета: семейство адресов не поддерживается протоколом Спасибо!   -  person Tadas Stra    schedule 05.07.2016


Ответы (2)


Глядя на ваш петлевой интерфейс, кажется, что вы отключили IPv6 на своем компьютере (нет записи inet6).

Теперь, согласно эта ошибка epmd не поддерживается IPv6, так что они исправили его, но теперь он требует включения IPv6 для запуска (см. комментарии № 16 и № 17).

Поскольку других действий по этой ошибке нет, я предлагаю попробовать включить IPv6 на вашем компьютере.

Возможный обходной путь — использование сопоставленного с IPV4 адреса IPV6.

Добавьте в свой /etc/rabbitmq/rabbitmq-env.conf следующую строку:

ERL_EPMD_ADDRESS=::ffff:127.0.1.1

Старый ответ

Есть много разных возможных причин вашей ошибки. Я предполагаю, что вы настроили RabbitMq для использования адреса IPv6, или у вас есть какая-то странная конфигурация сети, в которой нет IPv4.

Думаю, стоит попытаться отредактировать /etc/rabbitmq/rabbitmq-env.conf и добавить:

RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-proto_dist inet6_tcp"

Если это не работает, пожалуйста, напишите, что еще есть в /etc/rabbitmq/rabbitmq-env.conf и вывод ifconfig, пожалуйста

person rpadovani    schedule 05.07.2016
comment
Я обновил свой вопрос необходимой информацией, спасибо. - person Tadas Stra; 05.07.2016
comment
@TadasStra, если его нет, попробуйте создать /etc/rabbitmq/rabbitmq-env.conf и добавьте строку, которую я написал в ответе - установка прошла нормально, просто не удалось запустить сценарий после установки (потому что он не может запуститься) - person rpadovani; 05.07.2016
comment
@TadasStra на самом деле, я обновил ответ, потому что нашел ошибку, которую считаю актуальной. - person rpadovani; 05.07.2016
comment
Я попытался добавить строку с ERL_EPMD_ADDRESS, и я действительно думал, что это поможет, но, к сожалению, нет :( Попытался включить ipv6, но безуспешно с сообщением: поддержка IPv6 должна быть включена в ядре. Есть ли какие-либо другие решения? Например, понизить версию rabbitmq или erl, значит ipv6 не нужен?Спасибо за поддержку! - person Tadas Stra; 05.07.2016
comment
@TadasStra tbh У меня сейчас совсем мало идей. Просто попробуйте сделать export ERL_EPMD_ADDRESS=::ffff:127.0.1.1 в том же bash, в котором вы запускаете rabbitmq, возможно, rabbitmq не передает его в epmd - person rpadovani; 05.07.2016
comment
@TadasStra Предлагаю тогда открыть ошибку на LP: bugs.launchpad. net/ubuntu/+source/rabbitmq-server/+filebug - person rpadovani; 05.07.2016

Решением будет загрузка последней версии ErLang с официального сайта:

https://www.erlang-solutions.com/resources/download.html

Я скачал v19 для Ubuntu Precise, и теперь он работает хорошо.

person Tadas Stra    schedule 11.07.2016