web-dev-qa-db-ja.com

RabbitMQの開始に失敗しました、TCP接続は成功しましたが、Erlangの配布は失敗しました

私は、RabbitMQをWindowsシステムに習得してインストールし始めたばかりです。

Erlang VMとRabbitMQをデフォルトのフォルダーではなく、カスタムフォルダー(両方)にインストールします。

その後、コンピューターを再起動しました。

ところで、マイコンピュータ名は「NULL」


RabbitMQ/sbinフォルダーに移動して、コマンドを使用します:

rabbitmqctl status

ただし、返されるメッセージは次のとおりです。

ノードrabbit @ NULLのステータス...

エラー:ノード 'rabbit @ NULL'で操作を実行できません。以下の診断情報と提案を参照してください。

最も一般的な理由は次のとおりです。

  • ターゲットノードに到達できません(ホスト名の解決のため、TCP接続またはファイアウォールの問題)
  • CLIツールがサーバーとの認証に失敗する(たとえば、CLIツールのErlang CookieがサーバーのCookieと一致しないため)
  • ターゲットノードが実行されていません

以下の診断情報に加えて:

  • http://rabbitmq.com/documentation.html のCLI、クラスタリング、およびネットワーキングガイドを参照してください。
  • ノードrabbit @ NULLのサーバーログを参照してください

診断

連絡を試みました:[rabbit @ NULL]

rabbit @ NULL:

  • nULLでepmd(ポート4369)に接続
  • epmdは、ノード「rabbit」がノード間およびCLIツールのトラフィックにポート25672を使用することを報告します
  • TCP接続は成功したが、Erlangの配布は失敗した

  • 認証に失敗しました(リモートノードによって拒否されました)。ErlangCookieを確認してください

現在のノードの詳細:

  • ノード名:rabbitmqcli70 @ NULL
  • 有効なユーザーのホームディレクトリ:C:\ Users\Jerry Song
  • Erlang Cookieハッシュ:51gvGHZpn0gIK86cfiS7vp ==

RabbitMQを再起動しようとしましたが、得られるものは次のとおりです。

エラー:「rabbit」という名前のノードはすでに「NULL」で実行されています


ところで、マイコンピュータ名は「NULL」そして、ファイアウォールのすべてのポートを有効にしました。

7
nthack

私はRabbitMQを再インストールによって私のコンピューターにデフォルトのセットアップフォラーを使用を持っています

次に、コマンドで確認します。

rabbitmqctl status

Erlang VM。の問題ではありません。Erは他のフォラーでインストールできます)

RabbitMQを使用していないと、今は見つけられない問題(このような問題)が発生しますデフォルトのセットアップにはfolerが必要です(C:\ Program Files\RabbitMQ Server)

誰かがそれを見つけた場合、私はあなたが私にその理由と修正方法を教えてくれることを願っています。

1
nthack

https://groups.google.com/forum/#!topic/rabbitmq-users/a6sqrAUX_Fg は、Rabbit MQの新規インストールでCookieの不一致がある問題を説明しています。 Windowsでの簡単な解決策は、Cookieを同期することです

ここにも説明があります: http://www.rabbitmq.com/clustering.html#erlang-cookie

Cookieが以下の1、2、およびオプションで3で同期されていることを確認してください

  1. %HOMEDRIVE%%HOMEPATH%\.erlang.cookie(通常はC:\Users\%USERNAME%\.erlang.cookieユーザー%USERNAME%の場合)HOMEDRIVEおよびHOMEPATH環境変数の両方が設定されている場合

  2. %USERPROFILE%\.erlang.cookie(通常はC:\Users\%USERNAME%\.erlang.cookie)if[〜#〜] homedrive [〜#〜]および[〜#〜] homepath [ 〜#〜]は両方とも設定されていません

  3. RabbitMQ Windowsサービスの場合-%USERPROFILE%\.erlang.cookie(通常はC:\WINDOWS\system32\config\systemprofile

WindowsサービスアカウントとCLIツールを実行しているユーザーが使用するCookieファイルは、C:\WINDOWS\system32\config\systemprofileフォルダ。

7
Rishabh Jain

Windows10の開発ツール/ソフトウェアに専用のドライブフォルダーの場所を使用している場合(Windowsのデフォルトの場所ではありません)、 https://www.rabbitmq.com/cli .html は、以下で説明するようにCookieをコピーすることによります。

私の場合、HOMEDRIVEおよびHOMEPATH環境変数は両方ともnot設定されていることに注意してください。


"C:\ Windows\system32\config\systemprofile\.erlang.cookie"をコピーした後to "C:\ Users \%USERNAME%\。erlang.cookie"

エラー "tcp接続は成功したが、Erlang配布は失敗しました"は解決されました。


これで、「rabbitmqctl.bat status」コマンドを正常に使用できるようになりました。したがって、Cookieを同期するとエラーが解決されるため、このエラーを解決するためにデフォルトの場所にインストールする必要はありません。

6
ilanuk

Centosで。

  1. ip nodenameペアを各ノードの/ etc/hostsに追加します。

  2. 各スレーブノードでrabbitmq-serverサービスを再起動します。

私のために働く。

0
Richardhe2007

それが他の人に役立つなら、私の経験を追加するだけです。

Powershell .ps1スクリプトを作成して、RabbitMQをインストールおよび構成します。これは、Packerでサーバーをプロビジョニングするためのステップの1つとして使用されます。

AWS W2016 Serverの新しいビルドでコードを作成しました。 (管理者として管理者PSコンソールから)ボックスで実行すると正常に機能しましたが、同じコードをPackerビルドサーバーに移動すると、packerを介してrabbitmqctl.bat構成ステップを実行すると、両方が使用されても(私が知る限り)スクリプトを実行する管理者。

したがって、これはコーディングボックスで機能しました:

$pathvargs = {cmd.exe /c "rabbitmqctl.bat" add_user Username Password}
Invoke-Command -ScriptBlock $pathvargs
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_user_tags User administrator}
Invoke-Command -ScriptBlock $pathvargs
$pathvargs = {cmd.exe /c "rabbitmqctl.bat" set_permissions -p "/" User "^User-.*" ".*" ".*"}
Invoke-Command -ScriptBlock $pathvargs
Write-Host "Did RabbitMQ"

しかし、私はこれを除外しなければなりませんでした...

copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.17\sbin\.erlang.cookie"
copy "C:\Windows\system32\config\systemprofile\.erlang.cookie" $env:userprofile\.erlang.cookie -force

...パッカーボックス。

私はいくつかのコンテキストの問題が起こっていると推測していますが、私は使用しています

"winrm_username":       "Administrator",

packer Builderブロックで、これで十分だと思いました。

TL; DR-Cookieがなくても機能する場合でも、Cookieを使用します。

0
Faye Smelter