ubuntu - para - rabbitmq-server no se inicia después de que el nombre de host haya cambiado por primera vez
ubuntu dafont (10)
Compruebe qpidd daemon, también podría estar acaparando el puerto que rabbitmq necesita.
sudo netstat -lnp
Estoy usando django-apio para mi proyecto django. El último día he cambiado el nombre de host de mi computadora (estoy usando Ubuntu 12.04, archivo editado ''/ etc / hostname''), y después del siguiente reinicio django-aplery falló con error
Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...
Después de investigar un poco sobre este error, pude encontrarlo, cambiar el nombre de mi host provocó este error here . Mi registro de inicio de rabbitmq muestra
file: / var / log / rabbitmq / startup_log
Activating RabbitMQ plugins ...
********************************************************************************
********************************************************************************
0 plugins activated:
ERROR: epmd error for host "jinesh": nxdomain (non-existing domain)
Mi archivo startup_err está vacío.
cuando corro
root@jinesh:/home/jinesh# rabbitmqctl list_users
Listing users ...
Error: unable to connect to node rabbit@jinesh: nodedown
DIAGNOSTICS
===========
nodes in question: [rabbit@jinesh]
hosts, their running nodes and ports:
- unable to connect to epmd on jinesh: nxdomain
current node details:
- node name: rabbitmqctl4956@jinesh
- home dir: /var/lib/rabbitmq
- cookie hash: RGhmB2JR1LbZ57j7xWWTxg==
Espero que cambiar el nombre del nodo pueda solucionar este problema. Pero no pude encontrar una manera de hacer esto. ¿Alguien tiene idea de cómo resolver este problema?
actualizar
al cambiar el nombre de host, debe cambiar los archivos /etc/hostname
y /etc/hosts
.
Reinstalé rabbitmq y solucioné este problema, responderé a esta pregunta.
Eliminar la base de datos RabbitMQ: rm -rf /var/lib/rabbitmq/*
Esta acción resuelve el problema. Creo que en algún lugar de los vertederos almacenó un registro con la correspondencia de los nombres de host de los nodos y ips. Este hecho causa contradicción si algunos hosts cambian inesperadamente.
Elimine la instalación anterior de RabbitMQ para solucionar este problema. Aquí hay pasos para reinstalar RabbitMQ. Estos comandos se ejecutan como el usuario raíz:
Stop RabbitMQ:
rabbitmqctl stop
Cambiar
/etc/hosts
Cambiar
/etc/hostname
Desinstalar el viejo RabbitMQ:
dpkg -P rabbitmq-server
Elimine la base de datos de RabbitMQ:
rm -rf /var/lib/rabbitmq
Buscar el proceso de erlang que está ejecutando rabbit:
ps ax | grep rabbit
ps ax | grep rabbit
Mata el proceso enumerado
Reinstalar RabbitMQ:
apt-get install rabbitmq-server
Escribí sobre estos pasos en mi blog .
REVISIÓN
Moví mi blog a un nuevo sitio web.
En Windows, el problema que enfrentaba se debía al firewall de McAfee. El error exacto fue el error epmd para el host "": dirección (no puede conectarse al host / puerto)
Empezó a funcionar tan pronto como desactivé el firewall
En mi caso, no tenía una entrada siguiente en /etc/hosts
:
127.0.0.1 <hostname>
donde <hostname>
es el nombre de host de mi máquina (como lo indica el comando hostname
). Después de agregar esa línea, RabbitMQ comenzó con éxito. No tuve ninguna instalación anterior de RabbitMQ.
Gracias a Richard H Fung.
Sus pasos me ayudaron a resolver este problema.
Pero no tuve que volver a instalar el rabbitmq .
Cuando abrí mi /etc/hosts
, encontré que la IP
asignada a mi nombre de host es diferente de la dirección ip(192.168.1.200 [static])
.
#/etc/hosts
127.0.0.1 localhost
192.168.1.115 HOSTNAME
así que simplemente cambié la dirección IP a 192.168.1.200
en mi /etc/hosts
y funcionó bien.
La respuesta de Richard es buena, pero podrías perder algo de información en las colas de rabbitmq. La siguiente es una forma posible de preservar la configuración previa de rabbitmq con el nuevo nombre de host.
Una respuesta corta:
Si desea mantener el cambio del nuevo nombre de host, puede crear un rabbitmq-env.conf
en /etc/rabbitmq
que /etc/rabbitmq
referencia al nombre del host antiguo y todo debería ser bueno. Lo siguiente es lo que debería estar en el archivo rabbitmq-env.conf
:
NODENAME=rabbit@OLDHOSTNAME
Después de agregar el archivo de configuración, reinicie el servidor rabbitmq, entonces debería estar bien. (por ejemplo, service rabbitmq-server restart
(puede necesitar un sudo
con ubuntu))
Para obtener más información, puede leer en el sitio web rabbitmq: https://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html
Más detalles sobre la respuesta:
Tenía problemas de nombres de host similares usando CentOS ... El problema principal era cuando se instala Conejo, hace referencia al nombre de host actual en el momento de la instalación. Dado que esto es algo de rabbitmq, la solución debería funcionar para otros sabores de Linux. Si desea ver la respuesta completa, puede verla en: rabbtimqadmin - No se pudo conectar: [Errno -2] Nombre o servicio no conocido
Mi solución fue verificar y corregir $HOSTNAME
y /etc/hostname
. Resultó que mi enrutador estaba un poco confundido y me dio un dominio de nombre de host incorrecto. Después de reiniciar este, llamé export HOSTNAME=the.correct.hostname
y mi conejo se ejecuta sin reiniciar el sistema export HOSTNAME=the.correct.hostname
del servidor.
Puede resolver este problema eliminando la base de datos erlang mnesia asociada con rabbitmq o reinstalando rabbitmq.
Tengo una pista para la primera solución de la lista de correo de rabbitmq . Extracto de la respuesta, The Erlang Mnesia database is host specific (because it is a distributed DB). The simplest way to get you fixed is to clear out the database dir.
The Erlang Mnesia database is host specific (because it is a distributed DB). The simplest way to get you fixed is to clear out the database dir.
El segundo método es la manera más fácil (aunque no lo recomiendo). Para desinstalar hacer
dpkg -P rabbitmq-server
Puede consultar este link si desea obtener más información sobre la instalación / eliminación de paquetes Debian.
Tuve el mismo problema y hacer los pasos que Richard H Fung proporcionó no me ayudó. También tuve que desinstalar estos paquetes: erlang erlang-epmd rabbitmq-server
zypper remove erlang erlang-epmd rabbitmq-server
rm -rf /var/lib/rabbitmq/*
zypper install erlang erlang-epmd rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
Si tiene otro sistema operativo que no sea openSUSE, simplemente use su administrador de paquetes para eliminar estos paquetes (por ejemplo, apt-get
)