web-dev-qa-db-fra.com

Rabbitmq - Erreur: mnesia fonctionnant de manière inattendue

J'essaie de regrouper le lapin en utilisant le chef

Voici mon erreur. J'ai arrêté tout de lapin sur le deuxième noeud.

rabbitmqctl join_cluster --ram rabbit@ip-10-158-xxx-xxx

Error: mnesia_unexpectedly_running

Alors, quel est l'affaire? J'ai essayé cela depuis http://agiletesting.blogspot.com/2010/05/rabbitmq-clustering-in-ubuntu.html qui consiste à supprimer/var/lib/rabbitmq/mnesia. Ne pas aller. Et sur quel serveur ne fonctionne-t-il pas? Tout?

Merci

30
Tampa

Assurez-vous d'appeler Sudo rabbitmqctl stop_app avant d'émettre la commande de cluster. Cela semblait être le problème pour moi.

Assurez-vous ensuite d'appeler Sudo rabbitmqctl start_app pour recommencer :)

47
jocull

Pour appeler un très élément important du commentaire de @Itai Ganot qui n'est pas immédiatement intuitif: vous devez exécuter rabbitmqctl stop_app sur tous les nœuds sauf un. Si vous exécutez rabbitmqctl stop_app sur tous les nœuds, vous obtiendrez un message différent: Error: mnesia_not_running.

En bref:

  • Error: mnesia_unexpectedly_running signifie "vous devez exécuter rabbitmqctl stop_app sur ce nœud
  • Error: mnesia_not_running signifie "vous devez exécuter rabbitmqctl start_app sur le nœud avec lequel vous essayez de regrouper "
5
Chris Chandler

Vous devez copier le cookie du nœud que vous essayez de vous connecter

Prenons un exemple à 2 nœuds: rabbit @ node1 et rabbit @ node2

  1. Aller à rabbit@node1 et copiez le cookie du chat /var/lib/rabbitmq/.erlang.cookie
  2. Aller à rabbit@node2 supprimer le cookie actuel et coller le nouveau.
  3. Exécutez les commandes suivantes sur le même nœud

    /usr/sbin/rabbitmqctl stop_app
    /usr/sbin/rabbitmqctl reset
    /usr/sbin/rabbitmqctl cluster rabbit@node1
    

Ça devrait le faire.

La même procédure est documentée ici

2
user2348359

J'ai également reçu la même erreur en essayant de créer un cluster de deux serveurs rabbitmq.

Pour autant que je sache, le véritable processus de création d'un cluster est un peu différent de ceux décrits dans les autres réponses, mais c'est celui qui a finalement fonctionné pour moi:

Une fois que vous avez deux nœuds ou plus exécutant rabbitmq-server, choisissez un serveur et c'est celui que vous ne touchez pas - appelons-le rabbitmaster, dans tous les autres nœuds, procédez comme suit:

1. Make sure the rabbitmq-server is not running.
2. # su - rabbitmq
3. $ rabbitmq-server -detached
4. $ rabbitmqctl cluster_status
5. $ rabbitmqctl stop_app
6. $ rabbitmqctl join_cluster rabbit@rabbitmaster
7. $ rabbitmqctl start_app

Vous pouvez maintenant exécuter rabbitmqctl cluster_status et voyez à la fois le nœud que vous venez de configurer et le maître rabbitmq.

Plus d'informations peuvent être trouvées dans Site officiel RabbitMQ .

1
Itai Ganot

Je n'aime pas répondre à ma propre question, mais le regroupement du chef de rabbin usig était une vraie douleur. Le problème avec lapin a été résolu en n'utilisant pas l'option -N avec l'amorçage. Rabbit n'aime pas que le nom d'hôte soit changé.

Donc ... suite aux documents sur le site du lapin pour le regroupement a fonctionné comme prévu. Si vous utilisez l'option -N avec le chef ... des problèmes majeurs se poseront.

0
Tampa