web-dev-qa-db-fra.com

RabbitMQ, erlang: comment "s'assurer que les cookies erlang sont les mêmes"

J'utilise rabbitMQ avec du Graal et un problème est survenu ce matin. Lorsque je lance le statut rabbitmqctl, il me dit:

C:\Users\BuildnTest2>rabbitmqctl status
Status of node 'rabbit@BUILDNTEST2-PC' ...
Error: unable to connect to node 'rabbit@BUILDNTEST2-PC': nodedown diagnostics:
- nodes and their ports on BUILDNTEST2-PC: [{rabbit,49164},
                                        {rabbitmqctl27693,49286}]
- current node: 'rabbitmqctl27693@BuildnTest2-PC'
- current node home dir: C:\Users\BuildnTest2
- current node cookie hash: cSYB8tsT4mGGZHSUGQi08w==

Quand je vais à la page de dépannage de lapin: http://www.rabbitmq.com/troubleshooting.html ils disent:

then you should make sure the erlang cookies are the same.

Qu'est-ce que cela signifie et comment est-il accompli?

Google a trouvé ce fil de discussion http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2011-January/010806.html qui prétend avoir des instructions pour résoudre ce problème, mais malheureusement il redirige simplement vers le site de lapin où il n'y a pas de réponse.

29
Mikey

La réponse définitive à votre question sur le site RabbitMQ est la suivante: http://www.rabbitmq.com/clustering.html

Toutefois, d'après votre vidage de statut, il ne semble pas que ce soit votre problème. Il semble que votre nœud soit en panne. Ai-je raison de supposer que vous n'exécutez pas de cluster? Le fait que le nœud auquel vous ne pouvez pas vous connecter soit identique à celui depuis lequel vous exécutez les commandes l'indique.

Si le service RabbitMQ est en cours d'exécution, exécutez rabbitmqctl start S'il ne s'exécute pas, accédez aux services et démarrez-le, puis le ... .. ci-dessus. Le cookie erlang n'est pas pertinent pour les configurations sans cluster.

9
Steve Martin

Dans mon cas, pour une raison quelconque, le cookie (.erlang.cookie) stocké sous C:\Windows\ était différent de celui que j'avais stocké chez moi (%HOMEDRIVE%%HOMEPATH%, qui était C:\ pour moi). 

Une fois que j'ai copié le cookie de C:\Windows dans mon dossier personnel, tout a commencé à fonctionner.

16
Stefano Ricciardi

Pour ceux qui googuent, cette même erreur de cookie erlang peut se produire lorsque vous manquez le paramètre HOME dans la configuration de votre environnement. Par exemple, sur l'installation ArchLinux par défaut de rabbitmq.

Dans ce cas, le service est démarré avec systemctl start rabbitmq et génère un cookie, mais les outils de la CLI tels que rabbitmqctl status ne fonctionneront pas immédiatement car ils ne connaissent pas l'emplacement d'origine.

default /etc/rabbitmq/rabbitmq-env.conf

NODENAME=rabbit
NODE_IP_ADDRESS=0.0.0.0
NODE_PORT=5672

LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia

modified /etc/rabbitmq/rabbitmq-env.conf

NODENAME=rabbit
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672

HOME=/var/lib/rabbitmq
LOG_BASE=/var/log/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia

ref https://bbs.archlinux.org/viewtopic.php?id=191587

11
slf

Dans le répertoire personnel de l'utilisateur exécutant le processus erlang, se trouve le fichier caché .erlang.cookie. Il contient la chaîne responsable de la topologie du cluster erlang. Assurez-vous que la chaîne (cookie) est la même pour tous les nœuds que vous souhaitez connecter. S'il n'y a pas de cookie, créez-en un.

9
user425720

Pour ce que ça vaut, en 2018, les documents sont FAUX. Sous Windows 10, l'emplacement par défaut du fichier cookie semble être: 

C:\Windows\System32\config\systemprofile

et pas

C:\Windows

comme disent les docs. 

La meilleure chose à faire est de consulter le fichier journal, qui se trouve généralement dans votre répertoire utilisateur %AppData%\Roaming\RabbitMQ\log.

Le fichier journal contient cette entrée, ce qui m'a aidé à déterminer l'emplacement du cookie:

node           : rabbit@computername
home dir       : C:\WINDOWS\system32\config\systemprofile
8
neural

Synchroniser les cookies Erlang (lors de l’exécution d’un service Windows installé manuellement) Sécurité Erlang Les cookies utilisés par le compte de service et l’utilisateur exécutant rabbitmqctl.bat doivent être synchronisés pour que rabbitmqctl.bat puisse fonctionner . Pour que les fichiers de cookie Erlang contiennent le Même chaîne, copiez le fichier .erlang.cookie à partir du répertoire Windows (normalement C:\WINDOWS.erlang.cookie) pour remplacer l'utilisateur .erlang.cookie. Le cookie de l'utilisateur sera dans le répertoire de base de l'utilisateur (% HOMEDRIVE %% HOMEPATH%), par ex. C:\Documents and Settings \% USERNAME% .erlang.cookie ou C:\Utilisateurs \% USERNAME% .erlang.cookie (Windows Vista et versions ultérieures).

https://www.rabbitmq.com/install-windows-manual.html

4
Aravind

J'ai copié le cookie de C:\Windows dans mon dossier personnel ( C:\Users\Current User\.erlang.cookie) et tout a bien fonctionné.

2
onemanarmy

J'essayais de regrouper et même lorsque les cookies correspondaient, cela ne fonctionnait pas pour moi ... la seule chose qui a finalement fonctionné a été de définir la variable ERLANG_HOME dans mes variables d'environnement. 

Après avoir défini cette option, j'ai pu copier le cookie de mon courtier principal vers celui que je souhaitais regrouper et la jointure a bien fonctionné.

"Définissez ERLANG_HOME sur l'emplacement actuel de votre installation Erlang, par exemple, C:\Program Files\erlx.x.x (chemin complet). Les fichiers de traitement par lots RabbitMQ doivent exécuter% ERLANG_HOME%\bin\erl.exe.

Allez dans Démarrer> Paramètres> Panneau de configuration> Système> Avancé> Variables d’environnement. Créez la variable d'environnement système ERLANG_HOME et définissez-la sur le chemin d'accès complet du répertoire qui contient bin\erl.exe. "

https://www.rabbitmq.com/install-windows-manual.html

1
Todd Vance

Assurez-vous que le fichier erlang.cookie de rabbitmq correspond au fichier erlang.cookie de votre répertoire utilisateur:

Le biscuit rabbitmq erlang ...

... sera généralement situé dans /var/lib/rabbitmq/.erlang.cookie on Systèmes Unix et C:\Utilisateurs\Utilisateur actuel.erlang.cookie ou C:\Documents et Settings\Current User.erlang.cookie sur les systèmes Windows . ( http://www.rabbitmq.com/clustering.html#setup )

Assurez-vous que cela correspond avec ~/.erlang.cookie.

1
kipple

Si vous exécutez la version MacPorts de rabbitmq-server sous OSX, vous devez vérifier le fichier ~ rabbitmq/.erlang.cookie. Il doit correspondre à celui de /opt/local/var/lib/rabbitmq/.erlang.cookie, sinon "rabbitmqctl" ne peut pas se connecter.

0
Bertl

J'ai observé ce problème lorsque le serveur clone est devenu vivant avec le changement de nom. Problème résolu après une installation propre de rabbitmq et erlang.

0
ali kucuk