erreur rabbitmqctl: impossible de se connecter à node rabbit@myserver nodedown

je lance RabbitMQ v3.3.5 avec Erlang OTP 17.1 sous Windows 2008 R2. Mes environnements Dev et QA sont autonomes. Mes environnements de mise en scène et de production sont regroupés.

je trouve que ce problème se produit souvent là où le service RabbitMQ est en cours d'exécution, la console de gestion RabbitMQ voit tout, mais quand j'essaie d'exécuter rabbitmqctl à partir de la ligne de commande il échoue avec une erreur disant que le noeud est en panne (essayé localement et à distance serveur.)

ce problème est résolu si je redémarre le service Windows.

Je ne vois aucun message d'erreur dans le journal des erreurs RabbitMQ. Le dernier message indiquait que le noeud était activé.

ci-dessous est un exemple de sortie de la question que j'ai récemment éprouvé sur le noeud 2 de notre mise en scène Windows cluster:

PS C:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.3.5sbin> .rabbitmqctl.bat status
Status of node rabbit@MYSERVER2 ...
Error: unable to connect to node rabbit@MYSERVER2: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@MYSERVER2]

rabbit@MYSERVER2:
  * connected to epmd (port 4369) on MYSERVER2
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on MYSERVER2
  * suggestion: start the node

current node details:
- node name: rabbitmqctl2199771@MYSERVER2
- home dir: C:UsersRabbitMQ
- cookie hash: mn6OaTX9mS4DnZaiOzg8pA==

à ce point je redémarre le service RabbitMQ et puis réessaie

PS C:Program Files (x86)RabbitMQ Serverrabbitmq_server-3.3.5sbin> .rabbitmqctl.bat status
Status of node rabbit@MYSERVER2...
[{pid,3784},
 {running_applications,
     [{rabbitmq_management_agent,"RabbitMQ Management Agent","3.3.5"},
      {rabbit,"RabbitMQ","3.3.5"},
      {os_mon,"CPO  CXC 138 46","2.2.15"},
      {mnesia,"MNESIA  CXC 138 12","4.12.1"},
      {xmerl,"XML parser","1.3.7"},
      {sasl,"SASL  CXC 138 11","2.4"},
      {stdlib,"ERTS  CXC 138 10","2.1"},
      {kernel,"ERTS  CXC 138 10","3.0.1"}]},
 {os,{win32,nt}},
 {erlang_version,
     "Erlang/OTP 17 [erts-6.1] [64-bit] [smp:4:4] [async-threads:30]n"},
 {memory,
     [{total,35960208},
      {connection_procs,2704},
      {queue_procs,5408},
      {plugins,111936},
      {other_proc,13695792},
      {mnesia,102296},
      {mgmt_db,0},
      {msg_index,21816},
      {other_ets,884704},
      {binary,25776},
      {code,16672826},
      {atom,602729},
      {other_system,3834221}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{amqp,5672,"0.0.0.0"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,3435787059},
 {disk_free_limit,50000000},
 {disk_free,74911649792},
 {file_descriptors,
     [{total_limit,8092},
      {total_used,4},
      {sockets_limit,7280},
      {sockets_used,2}]},
 {processes,[{limit,1048576},{used,139}]},
 {run_queue,0},
 {uptime,5}]
...done.

une idée de ce qui cause cela et comment détecter automatiquement la situation?

est-ce spécifiquement un problème avec le fonctionnement de RabbitMQ sur Windows?

13
demandé sur Matteo 2014-08-20 20:13:53

4 réponses

Les noms D'hôtes

ne tiennent pas compte de la casse lorsque vous tentez de les résoudre. Par exemple, LOCALHOST et localhost sont les mêmes hôtes.

Toutefois, lorsque Erlang constructions le nom d'un nœud (par exemple. rabbit@<hostname> dans le cas de RabbitMQ), ce nom est sensible à la casse. Donc rabbit@LOCALHOST et rabbit@localhost sont deux noms de noeuds différents, même s'ils tournent sur le même hôte.

récemment, nous (l'équipe de RabbitMQ) avons découvert que, Windows, le nom de noeud construit pour RabbitMQ était incohérent . Par conséquent, parfois, RabbitMQ a commencé comme un service Windows pourrait être appelé rabbit@MYHOST mais rabbitmqctl essayer d'atteindre rabbit@myhost et échouer.

depuis RabbitMQ 3.6.0, le nom du noeud doit être cohérent.

8
répondu Jean-Sébastien Pédron 2016-03-22 16:31:55

pour quiconque ayant cette erreur, c'était ma solution. J'ai installé Erlang, mais j'ai négligé les instructions sur la configuration de la Variable environnementale.

je lisais la page d'installation manuelle: https://www.rabbitmq.com/install-windows-manual.html et trouvé ce qui suit:

définissez ERLANG_HOME à L'endroit où vous avez réellement mis votre installation Erlang, par exemple: C:\Program Files \ erlx.x.x (chemin complet). Le Fichiers de lots RabbitMQ attendez-vous à exécuter %ERLANG_HOME%\bin\erl.EXE.

Allez à Démarrer > Paramètres > Panneau de configuration > Système > Avancé > Les Variables D'Environnement. Créer la variable d'environnement système ERLANG_HOME et le mettre sur le chemin complet du répertoire contient bin\erl.EXE.

pour une raison quelconque, l'installation automatique a attribué le mauvais nom de chemin à la variable ERLANG_HOME - voir l'image ci-dessous. J'ai simplement ajouté \bin à la fin. enter image description here

2
répondu NealWalters 2016-05-11 13:32:20

j'ai eu un problème similaire sur ma machine linux et je poste la réponse ici, parce que rabbitmq sur windows peut gérer les choses de la même manière.

Mon post et la solution: rabbtimqadmin - impossible de se connecter: [Errno -2] Nom ou le service ne sait pas

le problème central était de changer le servername après la configuration de rabbitmq. Une fois installé, rabbitmq fait référence au nom du serveur, ce qui en fait une partie de sa configuration. Je peux voir ce étant un problème similaire sur windows.

en bref, vous pouvez changer le nom du serveur de nouveau au nom qu'il était lorsque vous avez installé rabbitmq ou vous pouvez ajouter un fichier rabbitmq-env.conf , Je ne suis pas sûr où il irait dans windows, mais ce qui suit donne des détails pour linux: https://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html

notez que sur linux le nom du serveur était CaSe SENiTivE! De sorte que vous peut ou peut ne pas avoir un problème similaire avec windows.

Espérons que cela aide et bonne chance!

0
répondu James Oravec 2017-05-23 12:32:26

si vous utilisez linux, essayez de changer la permission du dossier /var/lib/rabbitmq/mnesia.

0
répondu Tushar Saxena 2017-04-03 10:56:28