cookies - configurar - rabbitmq ha
RabbitMQ, erlang: cómo "asegurarse de que las cookies de erlang sean iguales" (11)
Estoy usando rabbitMQ con grails, y surgió un problema esta mañana. Cuando ejecuto el estado de rabbitmqctl me dice:
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==
Cuando voy a la página de solución de problemas de rabbit: http://www.rabbitmq.com/troubleshooting.html dicen:
then you should make sure the erlang cookies are the same.
¿Qué significa esto y cómo se logra?
Google encontró este hilo del foro http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2011-January/010806.html que dice tener instrucciones para resolver este problema, pero desafortunadamente solo redirige al sitio del conejo donde hay no es una respuesta
Asegúrese de que rabbitmq erlang.cookie coincida con erlang.cookie en su directorio de usuarios:
La galleta de conejo con erlang ...
... normalmente se ubicará en /var/lib/rabbitmq/.erlang.cookie en sistemas Unix y C: / Users / Current User.erlang.cookie o C: / Documents and Settings / Current User.erlang.cookie en Windows sistemas ( http://www.rabbitmq.com/clustering.html#setup )
Asegúrese de que coincida con ~ / .erlang.cookie.
Copié la cookie de C:/Windows
en mi carpeta de inicio ( C:/Users/Current User/.erlang.cookie)
y todo comenzó a funcionar bien.
En el directorio de inicio del usuario que ejecuta el proceso erlang, hay un archivo oculto .erlang.cookie. Contiene una cadena que es responsable de la topología del cluster erlang. Asegúrese de que la cadena (cookie) sea la misma en todos los nodos que desee conectar. Si no hay una cookie, cree una.
En mi caso, por alguna razón, la cookie ( .erlang.cookie
) almacenada en C:/Windows/
era diferente de la que tenía almacenada en mi hogar ( %HOMEDRIVE%
%HOMEPATH%
, que era C:/
para mí).
Una vez que copié la cookie de C:/Windows
en mi carpeta de inicio, todo comenzó a funcionar.
Estaba tratando de agrupar e incluso cuando las cookies coincidían no funcionaría para mí ... lo único que finalmente funcionó fue establecer la variable ERLANG_HOME en mis variables de entorno.
Después de configurar esto, pude copiar la cookie de mi bróker maestro a la que quería agrupar y la unión funcionó bien.
"Establezca ERLANG_HOME en donde realmente coloca su instalación de Erlang, por ejemplo, C: / Archivos de programa / erlx.xx (ruta completa). Los archivos por lotes de RabbitMQ esperan ejecutar% ERLANG_HOME% / bin / erl.exe.
Vaya a Inicio> Configuración> Panel de control> Sistema> Avanzado> Variables de entorno. Cree la variable de entorno del sistema ERLANG_HOME y configúrela en la ruta completa del directorio que contiene bin / erl.exe. "
La respuesta definitiva a su pregunta específica, en el sitio de RabbitMQ se encuentra en http://www.rabbitmq.com/clustering.html
Sin embargo, desde su volcado de estado, no parece que este sea su problema. Simplemente parece que tu nodo está caído. ¿Tengo razón al suponer que no está ejecutando un clúster? El hecho de que el nodo al que no puede conectarse sea el mismo desde el que está ejecutando los comandos lo indica.
Si el servicio RabbitMQ se está ejecutando, ejecute rabbitmqctl start Si no se está ejecutando, vaya a services e inicie y luego lo anterior. La cookie erlang es irrelevante para configuraciones no agrupadas.
Observé este problema cuando el servidor de clonación cobraba vida con el cambio de nombre. Problema resuelto después de la instalación de conejos limpios y erlang.
Para aquellos que están en Google, este mismo error de cookie erlang puede ocurrir cuando le falta el parámetro HOME
de la configuración de su entorno. Por ejemplo, en la instalación por defecto de ArchLinux de rabbitmq.
En este caso, el servicio se inicia con systemctl start rabbitmq
y genera una cookie, pero las herramientas cli, como el rabbitmqctl status
, no funcionarán de forma rabbitmqctl status
porque no conocen la ubicación del hogar.
predeterminado /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
modificado /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
Por lo que vale, en 2018, los documentos están mal. En Windows 10, la ubicación predeterminada del archivo de cookie parece ser:
C:/Windows/System32/config/systemprofile
y no
C:/Windows
como dicen los docs.
Lo mejor que puede hacer es mirar el archivo de registro, que normalmente se encuentra en su directorio %AppData%/Roaming/RabbitMQ/log
usuario.
El archivo de registro contiene esta entrada, que me ayudó a determinar la ubicación de la cookie:
node : rabbit@computername
home dir : C:/WINDOWS/system32/config/systemprofile
Si ejecuta la versión MacPorts de rabbitmq-server en OSX, debe verificar el archivo ~ rabbitmq / .erlang.cookie. Debe coincidir con el de /opt/local/var/lib/rabbitmq/.erlang.cookie, de lo contrario, "rabbitmqctl" no podrá conectarse.
Sincronizar las cookies de Erlang (cuando se ejecuta un servicio de Windows instalado manualmente) Las cookies de seguridad de Erlang utilizadas por la cuenta de servicio y el usuario que ejecuta rabbitmqctl.bat deben estar sincronizadas para que rabbitmqctl.bat funcione. Para garantizar que los archivos de cookies de Erlang contengan la misma cadena, copie el archivo .erlang.cookie del directorio de Windows (normalmente C: / WINDOWS.erlang.cookie) para reemplazar al usuario .erlang.cookie. La cookie del usuario estará en el directorio de inicio del usuario (% HOMEDRIVE %% HOMEPATH%), por ejemplo, C: / Documents and Settings /% USERNAME% .erlang.cookie o C: / Users /% USERNAME% .erlang.cookie (Windows Vista y después).