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を再インストールし、この問題を解決しました。この質問に答えます。
この問題を修正するには、RabbitMQの古いインストールを削除します。 RabbitMQを再インストールする手順は次のとおりです。これらのコマンドは、rootユーザーとして実行されます。
RabbitMQを停止:rabbitmqctl stop
変化する /etc/hosts
変化する /etc/hostname
古いRabbitMQをアンインストールします:dpkg -P rabbitmq-server
RabbitMQのデータベースを削除します:rm -rf /var/lib/rabbitmq
Rabbitを実行しているerlangのプロセスを見つける:ps ax | grep rabbit
リストされたプロセスを強制終了します
RabbitMQを再インストールします:apt-get install rabbitmq-server
私のブログ でこれらの手順について書きました。
[〜#〜] revision [〜#〜]
ブログを新しいWebサイトに移動しました。
リチャード・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
_に変更しましたが、うまくいきました。
リチャードの答えは良いですが、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
この問題を解決するには、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 .
Windowsでは、私が直面していた問題はMcAfeeファイアウォールによるものでした。正確なエラーは、ホスト ""のepmdエラーでした:アドレス(ホスト/ポートに接続できません)
ファイアウォールを無効にするとすぐに動作し始めました
RabbitMQデータベースを削除します:rm -rf /var/lib/rabbitmq/*
このアクションは問題を解決します。ダンプのどこかに、ノードのホスト名とIPの対応を含むレコードが保存されていると思います。一部のホストが予期せず変更された場合、この事実により矛盾が生じます。
私の場合、/etc/hosts
に次のエントリがありませんでした。
127.0.0.1 <hostname>
ここで、<hostname>
は私のマシンのホスト名です(hostname
コマンドで指定)。その行を追加した後、RabbitMQは正常に開始しました。 RabbitMQの以前のインストールはありませんでした。
私の解決策は$HOSTNAME
および/etc/hostname
。私のルーターは少し混乱していて、間違ったホスト名ドメインを教えてくれたことがわかりました。これを再起動した後、export HOSTNAME=the.correct.hostname
と私のウサギは、サーバーOSを再起動せずに実行されます。
この問題を解決するために、/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
それが役に立てば幸い。
私も同じ問題を抱えていたので、リチャード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
)
私のために働く唯一の解決策: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