web-dev-qa-db-ja.com

RabbitMQにNodedownエラーがあります

Windows 7 Enterpriseマシンで、Erlang 17.4およびRabbitMQ 3.4.3 x64を新規インストールしました。インストールは成功し、問題なく行われました。

最初のキューまたは交換をまだ作成しようとしませんでしたが、すでに問題が発生しています。この問題は another SO post に似ていますが、他の投稿にはクラスタリングが含まれているように見えますが、私は持っていません。さらに、他の投稿者はRabbitMQサービスを再起動することで問題を回避できます。そのアプローチは私にはうまくいきません。

私の「ノードダウン」問題は、RabbitMQコマンドプロンプトで明らかです。

C:\ Program Files(x86)\ RabbitMQ Server\rabbitmq_server-3.4.3\sbin> rabbitmqctl statusノードのステータスrabbit @ TPAJ05421843 ...
エラー:rabbit @ TPAJ05421843ノードに接続できません:nodedown

診断

連絡を試みた:[rabbit @ TPAJ05421843]

rabbit @ TPAJ05421843:
* TPAJ05421843のepmd(ポート4369)に接続
* epmdレポート:ノード 'rabbit'がまったく実行されていません
TPAJ05421843上の他のノード:['RabbitMQ']
*提案:ノードを開始

現在のノードの詳細:
-ノード名: 'rabbitmqctl-19884 @ TPAJ05421843'
-ホームディレクトリ:H:\
-Cookieハッシュ:PD4QQCYrf0TME9vIko3Xuw ==

上記に基づいて、明示的に「RabbitMQ」という名前のノードのステータスを確認することにしました。私はこれを得る:

C:\ Program Files(x86)\ RabbitMQ Server\rabbitmq_server-3.4.3\sbin> rabbitmqctl -n RabbitMQ status
ノード「RabbitMQ @ TPAJ05421843」のステータス...
エラー:ノード 'RabbitMQ @ TPAJ05421843'に接続できません:nodedown

診断

連絡を試みました:['RabbitMQ @ TPAJ05421843']

RabbitMQ @ TPAJ05421843:
* TPAJ05421843のepmd(ポート4369)に接続
* epmdは、ポート59301で実行されているノード 'RabbitMQ'を報告します
* TCP接続は成功しましたが、Erlang配布は失敗しました
*提案:ホスト名の不一致?
*提案:Cookieは正しく設定されていますか?

現在のノードの詳細:
-ノード名: 'rabbitmqctl-23076 @ TPAJ05421843'
-ホームディレクトリ:H:\
-Cookieハッシュ:PD4QQCYrf0TME9vIko3Xuw ==

少なくとも、ポート59301で実行されている 'RabbitMQ'を認識しているため、これはかろうじて優れています。

このトピックを調査しようとすると、「Cookieと一致していることを確認してください」という記事を見つけました。それに基づいて、RabbitMQクラスターを作成していない(作成するつもりもない)ため、「Cookieの不一致」は自分には関係ないと主張する この記事 を見つけました。

私は何をすべきか?

59
Brent Arias

今日も同じ問題がありました。 Cookieまたはファイアウォールの問題はなく、Windowsはサービスが正常に実行されていることを報告しました。これが最終的にそれを修正したものです:

  1. 管理者としてRabbitMQ sbinコマンドプロンプトを実行します。
  2. 「rabbitmq-service remove」を実行します
  3. 「rabbitmq-service install」を実行します

何らかの理由で、インストーラーによってセットアップされたサービスがいくつかのレジストリエントリを構成しませんでした。これを実行すると、それらが正しく設定され、サービスの実行が許可されました。

私が気づいたことの1つは、これを行う前は、Windowsサービスビューにサービスの説明がなかったことです。 rabbitmq-serviceコマンドを使用してインストールした後、説明が表示されました。同じ問題が発生している場合、これは簡単な指標になる場合があります。

112
Jerdev

@eddyPがコメントしたように、2つの異なるErlang Cookieファイルがありました。

  • $env:WINDIR\system32\config\systemprofile\.erlang.cookieにあるservercookieファイル(Erlang 20.2より前は$env:WINDIR\.erlang.cookieにありました)。
  • $env:USERPROFILE\.erlang.cookieにあるclientCookieファイル。

サーバーCookieファイルをクライアントファイルにコピーして、両方のファイルが同じになるようにして、問題を修正しました。

詳細については、 「ノード(およびCLIツール)が相互に認証する方法:Erlang Cookie」 を参照してください。

26
sh87

RabbitMQコマンドプロンプトsbin(管理者として実行)から次のコマンドを実行します。

rabbitmq-server restart 
19

Windownでは、何らかの理由でc:\Users\xxx\AppData\Roaming\RabbitMQ\db\xxxはユーザー名です)のすべてのフォルダーを削除してから、@ Jerdev answerと

  • rabbitmqを開始net start rabbitmq

  • rabbitmqサービスrabbitmqctl statusを確認してください

9
nguyên

RabbitMQメーリングリストの同じ質問: https://groups.google.com/forum/#!topic/rabbitmq-users/0s1ExFhl4hM

Erlang Cookieはrabbitmqctlだけでなくサーバーノードでも使用されるため、適切な場所に配置する必要があります。 Windows quirks の「管理者以外のユーザーとしてインストールすると、.erlang.cookieが間違った場所に残る」を参照してください。

7
Michael Klishin

Windows 10でこれを行うと問題が解決します。

  1. RabbitMQコマンドプロンプト(sbin dir)を管理者として実行します。
  2. (RabbitMQコマンドプロンプト)で「rabbitmq-service remove」を実行します。
  3. Windowsの[実行]ダイアログボックスで%AppData%を実行します。
  4. RabbitMQフォルダー内のすべてのファイルを削除します。
  5. (RabbitMQコマンドプロンプト)で「rabbitmq-service install」を実行します。
  6. (RabbitMQコマンドプロンプト)で「rabbitmqctl start_app」を実行します。
4
ccassob

同じエラーメッセージに対するLinuxの回答を探してここに来る場合は、試してください

Sudo service rabbitmq-server start

(これはブロッキングコマンドではありません)

3

私にとっては、他のコメントのようにクッキーは一致しませんでしたが、C:\ Windows\System32\config\systemprofileと同じ問題を抱えている人のために場所は異なるパスにありました

2
Steve Ritchie

以下を実行してください。

  1. Rabbitmqとerlangをアンインストールします。
  2. appdataに存在するrabbitmqフォルダーを削除します(appdataの場所がわからない場合は、コマンドプロンプトでecho%AppData%と入力するだけです)
  3. 次に、最初にerlangをインストールしてから、rabbitmqをインストールします。
  4. インストール後、以下のコマンドを使用して管理プラグインを有効にします。

    rabbitmq-plugins enable rabbitmq_management

2
Happy Dhingra

これは私が私のWindows 8システムでエラーを解決した方法です:

WindowsのAppDataフォルダーにあるrabbitmq.configファイルの構文エラーを確認します。

構文エラーがあるかどうかを確認する方法は?

次のsbinフォルダーからrabbitmq-server restartを実行できます。
Program Files/RabbitMQ/rabbitmq_server_x.x/sbin/

rabbitmq.configのコンテンツをrabbitmq.config.exampleに置き換えます。

Rabbitmq.config.exampleは次の場所にあります。

Program Files/RabbitMQ/rabbitmq_server_x.x/etc/

警告、以前にrabbitmqで保存した設定は失われます。

ファイルを変更した後、単にヒット

rabbitmq-server restart

上記のsbinフォルダーにあります。

1
Sayan Biswas

これは、ウサギMQがWindowsに正しくインストールされていないために発生しています(このエラーは誤解を招くものです!)。それを解決するには、次の手順を実行します。

  1. cortana検索で「cmd」と入力するか、古いバージョンのWindowsでは「実行」と入力します
  2. を右クリックして、「管理者として実行」を選択します
  3. ウサギのsbinフォルダーに移動します(cd "C:\ Program Files\RabbitMQ Server\rabbitmq_server-3.7.4\sbin")
  4. 実行:rabbitmq-service remove
  5. 実行:rabbitmq-service install

これで、6を実行できます。rabbitmq-pluginsでrabbitmq_managementを有効にします7. rabbitmq-service start 8.そして最後に、次を実行します:start http:// localhost:15672 9.ユーザーとしてログオンします「guest」とパスワード:「guest」とそれだけです。ハッピーラビット!

1
Dmitry Sazonov

WINDOWS OSの再起動に失敗し、古いバージョンのERLANG(再起動する前にアンインストールした)を削除しました。

どういうわけか、Rabbitの新規インストールは古い(インストールされていないバージョン)を参照しており、すべての不一致が発生していました。手掛かりは、古いERLANGバージョンからのウサギと呼ばれる「サービス」でした。

1
Sachin Gupta