[server] Ubuntu 12.04에서 rabbitmq-server를 시작할 수 없습니다

rabbitmq-serverubuntu-server 12.04에 설치하려고 했지만 실패했습니다.

그런 다음 http://www.rabbitmq.com/install-debian.html 의 가이드에 따라 적절한 소스 목록을 추가 하십시오.

그러나 재설치는 여전히 다음과 같은 오류가 있습니다.

$ sudo aptitude install rabbitmq-server
...
Setting up rabbitmq-server (2.8.7-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 rabbitmq-server (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
 rabbitmq-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up rabbitmq-server (2.8.7-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 rabbitmq-server (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 rabbitmq-server

그리고 오류 로그는 유용한 것으로 보이지 않습니다.

# startup_err shows this
Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

# startup_log shows this
{error_logger,{{2012,10,10},{22,31,54}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,epmd_close}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]}
{error_logger,{{2012,10,10},{22,31,54}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.20.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.90>,<0.17.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,24},{reductions,511}],[]]}
{error_logger,{{2012,10,10},{22,31,54}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfargs,{net_kernel,start_link,[[rabbitmqprelaunch18417,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
{error_logger,{{2012,10,10},{22,31,54}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfargs,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
{error_logger,{{2012,10,10},{22,31,54}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"}

나는 한동안 구글 검색을했지만 아무 것도 얻지 못했습니다.

인터넷에서 한 가지 해결책은 호스트 이름을 핑 가능하게 만드는 것입니다 /etc/hosts.

127.0.0.1    localhost    myserver

rabbitmq-server를 얻는 방법에 대한 제안이 있으십니까?



답변

내가 chefm을 설치하는 동안 rabbitmq-server를 설치하는 동안이 문제에 직면했습니다. 나를위한 해결 방법 과이 문제에 대한 해결책은 다음과 같습니다.

    $ sudo vim /etc/hosts

그런 다음 추가

    $ 127.0.0.1 <hostname>

호스트 이름은 확실하지 않으면 다음 명령을 실행하십시오.

    $ hostname

결과는 호스트 이름입니다. / etc / hosts에 추가 한 후 다음을 실행하십시오.

    $ sudo service rabbitmq-server start

그리고 시작되었습니다. 이것은 나를 위해 일했습니다. 읽어 주셔서 감사합니다. 🙂


답변

방화벽 / 포트가 차단되어 시동되지 않을 수 있습니다!

기본적으로 5672 (토끼 mq 포트) 및 4365 (빈 포트)를 활성화해야합니다.

그런 다음 다시 시작하면 작동합니다.


답변

먼저 erl -sname foo쉘을 확인 하십시오. 동일한 오류가 발생하면 ubuntu erlang package에 문제가있을 수 있습니다 .

그래서 나는 최신 erlang 패키지를 설치했으며 이것이 나를 위해 작동합니다.


답변

/etc/host파일 과 관련된 문제 입니다. 이 파일이 올바르게 구성되지 않았습니다.

파일을 열기 만하면됩니다.

$ sudo -s
$ vim /etc/hosts

이 파일에서 “127.0.0.1”로 시작하는 행을 확인하십시오 (일반적으로 파일의 상단에 위치).

그런 다음 다음과 같이 만드십시오.

127.0.0.1  your host name

그런 다음 저장하고 종료하십시오. 이제 다시 시작 rabbitmq-server하고 작동하는지 확인하십시오.


답변

비슷한 오류가 발생했습니다 (devstack을 위해 rabbitmq-server를 다시 시작할 때 로그가 없습니다) 내 / etc / hosts 파일이 올바르게 구성되었습니다.

rabbitmq_server가 실패하면 erl_crash.dump에 특정 정보를 기록합니다. 파일에서 포트 5672 (서버가 배포 된)가 비어 있지 않다는 것을 알 수있었습니다. netstat -vtanp | grep 5672에서도 마찬가지입니다. 포트가 beam.smp에 의해 사용 중입니다. 프로세스를 중지하고 rabbitmq-server를 다시 시작했는데 작동했습니다.


답변

제 경우에는 방화벽이 모든 로컬 연결을 차단하고 있다는 것이 문제였습니다.

들어오는 패킷에 대한 iptables 정책을 DROP으로 설정했습니다. 그러나 localhost에서 오는 패킷을 허용하는 특정 규칙을 추가해야했습니다.


답변

확실하게 로컬 네트워크를 살펴보십시오.

ip add

“lo”네트워크가없는 경우이를 활성화해야합니다.

ifconfig lo up

그런 다음 서버를 다시 시작하고 다시 작동하는지 확인하십시오.

systemctl start rabbitmq-server