web-dev-qa-db-fra.com

rabbitmq-server ne parvient pas à démarrer après la modification du nom d'hôte

J'utilise Django-céleri pour mon projet Django. Le dernier jour, j'ai changé le nom d'hôte de mon ordinateur (j'utilise Ubuntu 12.04, le fichier modifié '/ etc/hostname') et, après le prochain redémarrage, Django-celery échouait avec une erreur. 

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

Après quelques recherches sur cette erreur, j’ai trouvé que changer de nom d’hôte était la cause de cette erreur de ici . Mon journal de démarrage rabbitmq montre

fichier:/var/log/rabbitmq/startup_log

Activating RabbitMQ plugins ...

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

0 plugins activated:

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

Mon fichier startup_err est vide. 

quand je cours 

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==

J'espère que le changement du nom de noeud pourra résoudre ce problème. Mais je ne pouvais pas trouver un moyen de faire ça. Quelqu'un a une idée sur la façon de résoudre ce problème?

mettre à jour

lors du changement de nom d'hôte, vous devez changer les fichiers /etc/hostname et /etc/hosts.

J'ai réinstallé rabbitmq et résolu ce problème. Je répondrai à cette question.

51
Jinesh

Supprimez l'ancienne installation de RabbitMQ pour résoudre ce problème. Voici les étapes pour réinstaller RabbitMQ. Ces commandes sont exécutées en tant qu'utilisateur root:

  1. Arrêtez RabbitMQ: rabbitmqctl stop

  2. Changer /etc/hosts

  3. Changer /etc/hostname

  4. Désinstallez old RabbitMQ: dpkg -P rabbitmq-server

  5. Supprimer la base de données RabbitMQ: rm -rf /var/lib/rabbitmq

  6. Trouvez le processus de erlang qui exécute lapin: ps ax | grep rabbit

  7. Tuez le processus indiqué

  8. Réinstallez RabbitMQ: apt-get install rabbitmq-server

J'ai écrit sur ces étapes sur mon blog .

RÉVISION

J'ai déplacé mon blog sur un nouveau site.

54
Richard H Fung

Merci à Richard H. Fung.

Ses démarches m'ont aidé à résoudre ce problème.

Mais je n'ai pas eu à réinstaller le rabbitmq .

Lorsque j'ai ouvert mon fichier /etc/hosts, j'ai trouvé que IP affecté à mon nom d'hôte était différent du ip(192.168.1.200 [static]) actuel. 

#/etc/hosts  
127.0.0.1       localhost  
192.168.1.115   HOSTNAME

donc je viens de changer adresse IP en 192.168.1.200 dans mon fichier /etc/hosts et cela a bien fonctionné.

39
Kishor Pawar

La réponse de Richard est bonne, mais vous risquez de perdre certaines informations dans les files d'attente de rabbitmq. Voici un moyen possible de conserver la configuration précédente de rabbitmq avec le nouveau nom d'hôte.

Une réponse courte:

Si vous souhaitez conserver le changement de nom d'hôte, vous pouvez créer un fichier rabbitmq-env.conf dans /etc/rabbitmq qui fait référence à l'ancien nom d'hôte et tout devrait être bon. Voici ce qui devrait être dans le fichier rabbitmq-env.conf:

NODENAME=rabbit@OLDHOSTNAME

Après avoir ajouté le fichier de configuration, redémarrez le serveur rabbitmq. (par exemple, service rabbitmq-server restart (peut nécessiter une Sudo avec ubuntu))

Pour plus de détails, consultez le site Web de rabbitmq: https://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html

Plus de détails sur la réponse:

J'avais un problème de nom d'hôte similaire avec CentOS ... Le problème fondamental était l'installation de Rabbit, il fait référence au nom d'hôte actuel au moment de l'installation. Comme il s’agit d’un problème récurrent, la solution devrait fonctionner pour d’autres versions de Linux. Si vous voulez voir la réponse complète, vous pouvez la voir à: rabbtimqadmin - Impossible de se connecter: [Errno -2] Nom ou service inconnu

20
James Oravec

Vous pouvez résoudre ce problème en supprimant la base de données erlang mnesia associée à rabbitmq ou en réinstallant rabbitmq.

J'ai eu un indice pour la première solution de la liste de diffusion rabbitmq . Extrait de la réponse, 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. 

La seconde méthode est la plus simple (déconseillée cependant). Pour désinstaller faire 

dpkg -P rabbitmq-server

Vous pouvez consulter ce link si vous souhaitez en savoir plus sur l’installation/la suppression de paquets Debian.

6
Jinesh

Supprimer la base de données RabbitMQ: rm -rf /var/lib/rabbitmq/*

Cette action résout le problème. Je crois que quelque part dans les sauvegardes stocké un enregistrement avec la correspondance des nœuds noms d'hôtes et ips Ce fait provoque une contradiction si certains hôtes ont changé de manière inattendue.

5
I159

Sous Windows, le problème auquel je faisais face était dû au pare-feu McAfee. L'erreur exacte était erreur epmd pour l'hôte "": adresse (impossible de se connecter à l'hôte/port)

Il a commencé à fonctionner dès que j'ai désactivé le pare-feu

5
Gautam

Dans mon cas, je n'ai pas eu l'entrée suivante dans /etc/hosts:

127.0.0.1 <hostname>

<hostname> est le nom d'hôte de ma machine (donné par la commande hostname). Après avoir ajouté cette ligne, RabbitMQ a démarré avec succès. Je n'avais aucune installation antérieure de RabbitMQ.

3
Adam Michalik

Ma solution était de vérifier et de corriger le$HOSTNAMEet /etc/hostname. Il s'est avéré que mon routeur était un peu confus et m'a donné un mauvais domaine de nom d'hôte. Après avoir redémarré celui-ci, j'ai appelé export HOSTNAME=the.correct.hostname et mon lapin s'exécute sans redémarrer le système d'exploitation du serveur.

3
bert

Pour résoudre ce problème, j'ai modifié mon fichier /etc/hostname avec le nouveau nom d'hôte, puis redémarré la machine. Après cela, j'ai exécuté rm -rf /var/lib/rabbitmq/mnesia/*

Puis redémarré le service: Sudo service rabbitmq-server restart

À ce stade, cela a fonctionné pour moi. Si cela ne fonctionne toujours pas, modifiez le fichier /etc/rabbitmq/rabbitmq-env.conf en ajoutant ces informations:

NODENAME=rabbit@YOUR_NEW_HOSTNAME
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672

Puis redémarrez le service: Sudo service rabbitmq-server restart

J'espère que ça aide.

0
Sébastien Crettaz

J'ai eu le même problème et les étapes fournies par Richard H Fung ne m'ont pas aidé. J'ai aussi dû désinstaller ces paquets: 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

Si vous avez un autre système d'exploitation que openSUSE, utilisez simplement votre gestionnaire de paquets pour supprimer ces paquets (par exemple apt-get).

0
Peter