无法在Ubuntu 12.04上启动Rabbitmq服务器


8

我尝试rabbitmq-server在ubuntu服务器12.04上安装,但失败。

然后,按照http://www.rabbitmq.com/install-debian.html中的指南添加apt源列表

但是重新安装仍然具有如下相同的错误:

$ 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,[]]}}}"}

我已经用谷歌搜索了一段时间,但没有任何用处。

互联网上的一种解决方案是确保主机名可ping通,但是我/etc/hosts已经在最上面写了这一行:

127.0.0.1    localhost    myserver

关于如何启动rabbitmq-server有什么建议吗?


ps -ef | grep [r]abbit
量子

Answers:


10

我在安装Chef时确实遇到了这个问题。我的解决方法和解决此问题的方法如下。

    $ sudo vim /etc/hosts

然后加

    $ 127.0.0.1 <hostname>

这是您的主机名,如果不确定主机名,请运行以下命令:

    $ hostname

结果是您的主机名。只需将其添加到您的/ etc / hosts中,然后运行:

    $ sudo service rabbitmq-server start

它开始了。这对我有用。感谢您的阅读时间。:)


1

您的防火墙/端口可能会阻塞,因此无法启动!

默认情况下,您应该启用5672(兔子mq端口)和4365(empd端口)

然后重新启动它应该可以工作。


谢谢,我的ufw阻止了这些端口。您的评论为我解决了问题。
Bartosz Hernas 2015年


0

这是与/etc/host文件有关的问题。该文件配置不正确。

只需打开文件:

$ sudo -s
$ vim /etc/hosts

检查此文件中以“ 127.0.0.1”开头的行(通常位于文件顶部)。

然后使它看起来像这样:

127.0.0.1  your host name

然后保存并退出。现在重新启动rabbitmq-server并确认它可以正常工作。


这个问题已经指出了这/etc/hosts一点。
安德鲁B

确实有效。虽然措辞不佳
rdsoze 2014年

0

我也遇到了类似的错误。(重新启动devstack的Rabbitmq服务器时,我没有日志)我的/ etc / hosts文件配置正确。

当Rabbitmq_server失败时,它将某些信息记录在erl_crash.dump中。在文件中,我可以看到端口5672(部署服务器的地方)不是空闲的。从netstat -vtanp | grep 5672可以看到相同的端口。beam.smp正在使用该端口。我停止了该过程,然后重新启动了rabbitmq-server,它正常工作。


0

就我而言,问题是我的防火墙阻止了所有本地连接。

我已经将传入数据包的iptables策略设置为DROP。但是,我需要添加一个特定的规则以允许来自本地主机的数据包。


0

毫无疑问,请看一下您的本地网络

ip add

如果没有“ lo”网络,则应启用它:

ifconfig lo up

然后再次重新启动服务器,让我们看看它现在是否又可以正常工作

systemctl start rabbitmq-server
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.