web-dev-qa-db-ja.com

rabbitmq-serverは、ホスト名が初めて変更された後に起動に失敗します

DjangoプロジェクトにDjango-celeryを使用しています。前日、コンピューターのホスト名を変更しました(Ubuntu 12.04を使用し、ファイル '/ etc/hostname'を編集しました)。 -セロリはエラーで失敗していました

Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...

このエラーについて調査したところ、ホスト名を変更すると here からこのエラーが発生することがわかりました。 rabbitmqの起動ログが表示されます

ファイル:/ var/log/rabbitmq/startup_log

Activating RabbitMQ plugins ...

********************************************************************************
********************************************************************************

0 plugins activated:

ERROR: epmd error for Host "jinesh": nxdomain (non-existing domain)

Startup_errファイルが空です。

私が走るとき

root@jinesh:/home/jinesh# rabbitmqctl list_users
Listing users ...
Error: unable to connect to node rabbit@jinesh: nodedown

DIAGNOSTICS
===========

nodes in question: [rabbit@jinesh]

hosts, their running nodes and ports:
- unable to connect to epmd on jinesh: nxdomain

current node details:
- node name: rabbitmqctl4956@jinesh
- home dir: /var/lib/rabbitmq
- cookie hash: RGhmB2JR1LbZ57j7xWWTxg==

ノード名を変更すると、この問題が解決することを願っています。しかし、私はこれを行う方法を見つけることができませんでした。この問題をどのように解決するかについてのアイデアはありますか?

update

ホスト名を変更するときは、/etc/hostnameファイルと/etc/hostsファイルの両方を変更する必要があります。

Rabbitmqを再インストールし、この問題を解決しました。この質問に答えます。

55
Jinesh

この問題を修正するには、RabbitMQの古いインストールを削除します。 RabbitMQを再インストールする手順は次のとおりです。これらのコマンドは、rootユーザーとして実行されます。

  1. RabbitMQを停止:rabbitmqctl stop

  2. 変化する /etc/hosts

  3. 変化する /etc/hostname

  4. 古いRabbitMQをアンインストールします:dpkg -P rabbitmq-server

  5. RabbitMQのデータベースを削除します:rm -rf /var/lib/rabbitmq

  6. Rabbitを実行しているerlangのプロセスを見つける:ps ax | grep rabbit

  7. リストされたプロセスを強制終了します

  8. RabbitMQを再インストールします:apt-get install rabbitmq-server

私のブログ でこれらの手順について書きました。

[〜#〜] revision [〜#〜]

ブログを新しいWebサイトに移動しました。

54
Richard H Fung

リチャード・H・フォンに感謝します。

彼の手順は、この問題を解決するのに役立ちました。

ただし、rabbitmqを再インストールする必要はありませんでした

_/etc/hosts_ファイルを開いたときに、ホスト名に割り当てられたIPが実際のip(192.168.1.200 [static])と異なることがわかりました。

_#/etc/hosts  
127.0.0.1       localhost  
192.168.1.115   HOSTNAME
_

だから私はちょうどIPアドレスを_192.168.1.200_ファイルで_/etc/hosts_に変更しましたが、うまくいきました。

39
Kishor Pawar

リチャードの答えは良いですが、rabbitmqキューの情報を失う可能性があります。以下は、rabbitmqの以前の設定を新しいホスト名で保持する可能な方法です。

短い答え:

新しいホスト名の変更を保持する場合は、rabbitmq-env.confに古いホスト名を参照する/etc/rabbitmqファイルを作成できます。 rabbitmq-env.confファイルには次の内容を含める必要があります。

NODENAME=rabbit@OLDHOSTNAME

構成ファイルを追加したら、rabbitmqサーバーを再起動してください。 (例:service rabbitmq-server restart(ubuntuでSudoが必要な場合があります))

詳細については、rabbitmqのWebサイトから読むことができます: https://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html

回答の詳細:

CentOSを使用して同様のホスト名の問題がありました...根本的な問題は、ウサギのインストール時に、インストール時に現在のホスト名を参照することでした。これはrabbitmqの問題なので、このソリューションは他のLinuxフレーバーでも機能するはずです。完全な回答を表示する場合は、次のURLで確認できます。 rabbtimqadmin-接続できませんでした:[Errno -2] Name or service not known

20
James Oravec

この問題を解決するには、rabbitmqに関連するerlang mnesiaデータベースを削除するか、rabbitmqを再インストールします。

rabbitmqメーリングリスト から最初の解決策のヒントを得ました。回答からの抜粋、The Erlang Mnesia database is Host specific (because it is a distributed DB). The simplest way to get you fixed is to clear out the database dir.

2番目の方法は最も簡単な方法です(ただしお勧めしません)。アンインストールするには

dpkg -P rabbitmq-server

Debianパッケージのインストール/削除についてもっと知りたい場合は、これを参照できます link .

6
Jinesh

Windowsでは、私が直面していた問題はMcAfeeファイアウォールによるものでした。正確なエラーは、ホスト ""のepmdエラーでした:アドレス(ホスト/ポートに接続できません)

ファイアウォールを無効にするとすぐに動作し始めました

5
Gautam

RabbitMQデータベースを削除します:rm -rf /var/lib/rabbitmq/*

このアクションは問題を解決します。ダンプのどこかに、ノードのホスト名とIPの対応を含むレコードが保存されていると思います。一部のホストが予期せず変更された場合、この事実により矛盾が生じます。

4
I159

私の場合、/etc/hostsに次のエントリがありませんでした。

127.0.0.1 <hostname>

ここで、<hostname>は私のマシンのホスト名です(hostnameコマンドで指定)。その行を追加した後、RabbitMQは正常に開始しました。 RabbitMQの以前のインストールはありませんでした。

3
Adam Michalik

私の解決策は$HOSTNAMEおよび/etc/hostname。私のルーターは少し混乱していて、間違ったホスト名ドメインを教えてくれたことがわかりました。これを再起動した後、export HOSTNAME=the.correct.hostnameと私のウサギは、サーバーOSを再起動せずに実行されます。

3
bert

この問題を解決するために、/etc/hostnameファイルを新しいホスト名で使用し、マシンを再起動しました。その後、rm -rf /var/lib/rabbitmq/mnesia/*

その後、サービスを再起動しました:Sudo service rabbitmq-server restart

この時点で、うまくいきました。それでも動作しない場合は、ファイルを変更します/etc/rabbitmq/rabbitmq-env.confこれらの情報を追加することにより:

NODENAME=rabbit@YOUR_NEW_HOSTNAME
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672

次に、サービスを再起動します:Sudo service rabbitmq-server restart

それが役に立てば幸い。

0

私も同じ問題を抱えていたので、リチャードHファンが提供した手順を実行しても助けにはなりませんでした。これらのパッケージもアンインストールする必要がありました:erlang erlang-epmd rabbitmq-server

zypper remove erlang erlang-epmd rabbitmq-server
rm -rf /var/lib/rabbitmq/*
zypper install erlang erlang-epmd rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

OpenSUSE以外のOSを使用している場合は、パッケージマネージャーを使用してこれらのパッケージを削除してください(例:apt-get

0
Peter

私のために働く唯一の解決策:delangからerlang&rabbitmqをインストールので:

最初に削除:

apt-get purge rabbitmq-server
apt-get purge erlang
apt-get autoremove
reboot

Wgetのインストール後:

Sudo apt-get -y install socat logrotate init-system-helpers adduser
Sudo apt-get -y install wget

Erlangをインストールします。

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
Sudo dpkg -i erlang-solutions_1.0_all.deb
Sudo apt-get update
Sudo apt-get install erlang

Rabbitmqをインストールします。

Sudo apt-get update
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.17/rabbitmq-server_3.7.17-1_all.deb
Sudo dpkg -i rabbitmq-server_3.7.17-1_all.deb
rm rabbitmq-server_3.7.17-1_all.deb
0
ZeroProcess