web-dev-qa-db-fra.com

RabbitMQ a une erreur Nodedown

Sur une machine Windows 7 Entreprise, j'ai effectué une nouvelle installation d'Erlang 17.4 et de RabbitMQ 3.4.3 x64. L'installation a été réussie et sans incident. 

Je n'ai pas encore essayé de créer ma première file d'attente ou mon premier échange, mais je vois déjà des problèmes. Ce problème est similaire à un autre SO post , mais cet autre post semble impliquer la mise en cluster, ce que je n'ai pas. En outre, cette autre affiche peut contourner son problème en redémarrant le service RabbitMQ; cette approche ne fonctionne pas pour moi.

Mon problème de "nodedown" est évident à l'invite de commande RabbitMQ:

C:\Program Files (x86)\RabbitMQ Server\statut_abbitmq_server-3.4.3\sbin> rabbitmqctl Statut du noeud lapin @ TPAJ05421843 ...
Erreur: impossible de se connecter au noeud rabbit @ TPAJ05421843: nodedown

DIAGNOSTIC

tenté de contacter: [rabbit @ TPAJ05421843]

lapin @ TPAJ05421843:
* connecté à epmd (port 4369) sur TPAJ05421843
* rapports epmd: le noeud 'rabbit' ne fonctionne pas du tout
autres nœuds sur TPAJ05421843: ['RabbitMQ']
* suggestion: démarrer le noeud

détails du nœud actuel:
- nom du noeud: 'rabbitmqctl-19884 @ TPAJ05421843'
- répertoire personnel: H: \
- hachage du cookie: PD4QQCYrf0TME9vIko3Xuw ==

Sur la base de ce qui précède, j'ai choisi de vérifier l'état du nœud explicitement nommé «RabbitMQ». J'ai compris:

C:\Program Files (x86)\Serveur RabbitMQ\rabbitmq_server-3.4.3\sbin> rabbitmqctl -n Statut RabbitMQ
Statut du noeud 'RabbitMQ @ TPAJ05421843' ...
Erreur: impossible de se connecter au noeud 'RabbitMQ @ TPAJ05421843': nodedown

DIAGNOSTIC

a tenté de contacter: ['RabbitMQ @ TPAJ05421843']

RabbitMQ @ TPAJ05421843:
* connecté à epmd (port 4369) sur TPAJ05421843
* epmd rapporte le noeud 'RabbitMQ' fonctionnant sur le port 59301
* La connexion TCP a réussi mais la distribution Erlang a échoué
* suggestion: incompatibilité de nom d'hôte?
* suggestion: le cookie est-il configuré correctement?

détails du nœud actuel:
- nom du noeud: 'rabbitmqctl-23076 @ TPAJ05421843'
- répertoire personnel: H: \
- hachage du cookie: PD4QQCYrf0TME9vIko3Xuw ==

Ok, c'est à peine mieux, car au moins, il reconnaît que 'RabbitMQ' est exécuté sur le port 59301. Mais qu'est-ce que cela peut vouloir dire alors que "la distribution d'Erlang a échoué"?

Lorsque j'essayais de faire des recherches sur ce sujet, j'ai trouvé des articles disant: "Assurez-vous que vous avez identifié des cookies." Sur la base de cela, j’ai trouvé cet article , qui prétend que le "décalage des cookies" ne m’appartient pas, car je n’ai pas créé (ni n’ai l'intention de le créer) un cluster RabbitMQ.

Que devrais-je faire?

57
Brent Arias

J'ai eu le même problème aujourd'hui. Aucun problème de cookie ou de pare-feu n'a été détecté et Windows a signalé que le service fonctionnait correctement. C'est ce qui a finalement résolu le problème:

  1. Exécutez la commande sbin RabbitMQ Invite en tant qu'administrateur.
  2. Exécuter "rabbitmq-service remove"
  3. Exécutez "rabbitmq-service install"

Pour une raison quelconque, le service configuré par le programme d'installation n'a pas configuré plusieurs entrées de registre. L'exécution de ce jeu les a correctement configurés et a permis au service de s'exécuter.

Une chose que j'ai remarquée, c'est qu'avant de faire cela, il n'y avait aucune description du service dans la vue Services Windows. Après l'installation avec la commande rabbitmq-service, la description était visible. Cela pourrait être un indicateur rapide si vous rencontrez le même problème.

107
Jerdev

Comme @eddyP a commenté, j'avais deux fichiers de cookies Erlang différents:

  • Un fichier de cookie serveur, situé à $env:WINDIR\system32\config\systemprofile\.erlang.cookie (avant Erlang 20.2, il se trouvait à $env:WINDIR\.erlang.cookie).
  • Un fichier de cookie client, situé à $env:USERPROFILE\.erlang.cookie.

Copier le fichier de cookie du serveur sur le client, de sorte que les deux fichiers soient identiques, a résolu le problème pour moi.

Pour plus de détails, voir "Comment les nœuds (et les outils de la CLI) s’authentifient les uns les autres: le cookie Erlang" .

25
sh87

À partir de l'invite de commande RabbitMQ, sbin (exécuté en tant qu'administrateur), exécutez cette commande:

rabbitmq-server restart 
18
Andrei Karcheuski

Dans Windown, Pour une raison quelconque, supprimez tous les dossiers de c:\Users\xxx\AppData\Roaming\RabbitMQ\db\ (xxx est votre nom d'utilisateur)

  • démarrer rabbitmq net start rabbitmq

  • vérifier le service rabbitmq rabbitmqctl status

8
nguyên

Même question sur la liste de diffusion RabbitMQ: https://groups.google.com/forum/#!topic/rabbitmq-users/0s1ExFhl4hM .

Le cookie Erlang est utilisé par rabbitmqctl ainsi que par les nœuds du serveur. Il peut donc être nécessaire de le gérer (placé à l'emplacement correct) . "sur Windows bizarreries .

6
Michael Klishin

Je résous mon problème en procédant ainsi dans Windows 10.

  1. Exécutez l'invite de commande RabbitMQ (sbin dir) en tant qu'administrateur.
  2. Exécutez "rabbitmq-service remove" dans (Invite de commande RabbitMQ). 
  3. Exécutez% AppData% dans la boîte de dialogue Exécuter de Windows.
  4. Supprimez tous les fichiers du dossier RabbitMQ. 
  5. Exécutez "rabbitmq-service install" dans (Invite de commande RabbitMQ).
  6. Exécutez "rabbitmqctl start_app" dans (invite de commande RabbitMQ).
2
ccassob

Si vous venez ici chercher une réponse linux pour le même message d'erreur, essayez

Sudo service rabbitmq-server start

(qui n'est pas une commande de blocage)

2
Jose Luis Pumarega

Pour moi les cookies ne correspondaient pas, comme les autres commentaires, mais les emplacements étaient dans un chemin différent pour ceux qui ont le même problème que moi C:\Windows\System32\config\systemprofile

1
Steve Ritchie

Il suffit de faire ce qui suit:

  1. Désinstallez rabbitmq et erlang.
  2. supprimez le dossier rabbitmq existant dans votre application (si vous ne le connaissez pas connaissez l'emplacement de cette application, tapez simplement echo% AppData% dans la commande Invite)
  3. Ensuite, installez d'abord erlang, puis rabbitmq.
  4. Après l'installation, activez le plug-in de gestion à l'aide de la commande ci-dessous:

    rabbitmq-plugins enable rabbitmq_management

1
Happy Dhingra

Voici comment j'ai résolu l'erreur sur mon système Windows 8:

Recherchez une erreur de syntaxe dans le fichier rabbitmq.config placé dans le dossier AppData pour Windows.

Comment vérifier s'il y a une erreur de syntaxe? 

Vous pouvez exécuter rabbitmq-server restart à partir du dossier sbin dans:
Program Files/RabbitMQ/rabbitmq_server_x.x/sbin/

Remplacez le contenu du rabbitmq.config par rabbitmq.config.example

Vous pouvez trouver le fichier rabbitmq.config.example dans:

Program Files/RabbitMQ/rabbitmq_server_x.x/etc/

Attention, vous perdrez la configuration que vous avez précédemment enregistrée avec rabbitmq.

Après avoir modifié les fichiers, appuyez simplement sur 

rabbitmq-server restart

dans le dossier sbin mentionné ci-dessus.

0
Sayan Biswas

Cela se produit parce que lapin MQ n'est pas installé correctement sur Windows (et cette erreur est trompeuse!). Donc, pour le résoudre, procédez comme suit:

  1. tapez "cmd" dans la recherche Cortana ou dans "Exécuter" pour l'ancienne version de Windows
  2. faites un clic droit sur et choisissez "Exécuter en tant qu'administrateur"
  3. aller au dossier sbin de lapin (cd "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.4\sbin")
  4. lancer: rabbitmq-service remove
  5. lancer: rabbitmq-service install

maintenant, vous pouvez courir 6. rabbitmq-plugins enable rabbitmq_management 7. démarrage du service lapin 8. et enfin, lancez: start http: // localhost: 15672 9. connectez-vous en tant qu'utilisateur "guest" avec le mot de passe "guest" et c'est tout. Bon rabbit!

0
Dmitry Sazonov

J'ai manqué de redémarrer mon système d'exploitation Windows et de supprimer l'ancienne version d'ERLANG (que j'avais désinstallée avant de redémarrer).

D'une manière ou d'une autre, la nouvelle installation de Rabbit faisait référence à l'ancienne (version non installée) et à toute la discordance qui se produisait. L'indice était le lapin référencé «services» de l'ancienne version ERLANG.

0
Sachin Gupta