インストールしようとしていますrabbitmq-server
ubuntu-server 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,[]]}}}"}
私はしばらくグーグルしましたが、何も役に立ちませんでした。
インターネット上の1つの解決策は、ホスト名がping可能であることを確認することですが、私の/etc/hosts
はすでにこの行を上に持っています:
127.0.0.1 localhost myserver
Rabbitmq-serverを起動する方法について何か提案はありますか?
Chefをインストールしているときに、rabbitmq-serverをインストールしているときにこの問題に直面しました。私の回避策とこの問題の解決策は次のとおりです。
$ Sudo vim /etc/hosts
それから加えて
$ 127.0.0.1 <hostname>
ホスト名は次のとおりです。ホスト名がわからない場合は、次のコマンドを実行してください。
$ hostname
結果はホスト名です。それを/ etc/hostsに追加して実行します。
$ Sudo service rabbitmq-server start
そしてそれが始まりました。これでうまくいきました。お読みいただきありがとうございます。
まず、erl -sname foo
シェルで。同じエラーが発生する場合、それは buntu erlangパッケージ の問題である可能性があります。
それで、私は 最新のerlangパッケージ をインストールしただけで、これは私にとってはうまくいきます。
ファイアウォール/ポートがブロックして、起動できない可能性があります!
デフォルトでは、5672(rabbit mqポート)および4365(empdポート)を有効にする必要があります
次に、再起動して機能するはずです。
これは/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