Cuando intenté conectarme a Elasticsearch usando el
curl http://localhost:9200
, está funcionando bien.
Pero cuando ejecuto el curl http://IpAddress:9200
, arroja un error que dice
No se pudo conectar al puerto localhost 9200: conexión rechazada
¿Cómo solucionar este error?
elasticsearch
chinna2580
fuente
fuente
curl -X GET "http://localhost:9200"
Respuestas:
De forma predeterminada, debería vincularse a todas las direcciones locales. Por lo tanto, suponiendo que no tienen un problema de capa de red con servidores de seguridad, el único establecimiento de ES que se me ocurre a comprobar es
network.bind_host
y asegúrese de que o bien no se establece o se establece en0.0.0.0
o::0
oa la dirección IP correcta para la red.Actualización: según los comentarios en ES 2.3, debe establecer en su
network.host
lugar.fuente
network.bind_host
valor, dejarlo sin configurar era mi problema.Edite
/etc/elasticsearch/elasticsearch.yml
y agregue la siguiente línea:Esto "desarmará" este parámetro y permitirá conexiones desde otras IP.
fuente
/Applications/elasticsearch-2.1.1/config/elasticsearch.yml
, y el parámetro que tenía que editarnetwork.host
no eranetwork.bind_host
.curl http://172.17.0.2:9200
. Reconocerá que es la dirección IP de la ventana acoplable más utilizada.Probé todo en esta página y solo ayudaron las instrucciones de aquí .
en
/etc/default/elasticsearch
, asegúrese de que no estén comentados:asegúrese de que
/var/lib/elasticsearch
sea propiedad del usuario de elasticsearch:fuente
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
y sin comentarios elSTART_DAEMON=true
sudo systemctl restart elasticsearch
como respondió @kalanit, resolvió el problemaEn mi caso, se inició elasticsearch. Pero todavía tenía
El siguiente comando no tuvo éxito
Para que funcione, tuve que correr
Entonces todo salió bien.
fuente
sudo systemctl enable elasticsearch
.systemctl
funciona y el servicio no funciona.¿Por qué no comienzas con esta línea de comandos?
Lo hice y obtuve:
Luego edité el
/etc/elasticsearch/jvm.options
archivo:Funcionó como por arte de magia.
fuente
Ninguna de las soluciones propuestas aquí funcionó para mí, pero lo que finalmente hizo que funcionara fue agregar lo siguiente a
elasticsearch.yml
Después de eso, reinicié el servicio y ahora puedo
curl
hacerlo desde dentro de la VM y desde afuera. Por alguna extraña razón, tuve que probar algunas variantes diferentes de unacurl
llamada dentro de la VM antes de que funcionara:Nota: estoy usando Elasticsearch 5.5 en Ubuntu 14.04
fuente
asegúrese de que el servidor esté iniciado. He visto este problema cuando mi máquina virtual tenía muy poca RAM y no se podía iniciar.
lo anterior le mostrará si es realmente en ejecución.
fuente
Para este problema, tuve que usar:
sudo /usr/share/elasticsearch/bin/elasticsearch start
para poder obtener algo en los puertos 9200/9300 (sudo netstat -ntlp) y una respuesta a:
curl -XGET http://localhost:9200
fuente
Edite
elasticsearch.yml
y agregue la siguiente líneanetwork.host: 0.0.0.0
no funcionó parafuente
Abra su Dockerfile bajo elasticsearch carpeta y actualización "network.host = 0.0.0.0" con "network.host = 127.0.0.1" . Luego reinicie el contenedor. Comprueba tu conexión con curl.
fuente
Tuve el mismo problema al rechazar las conexiones en el puerto 9200. Verifique el estado del servicio elasticsearch con el comando
sudo service elasticsearch status
. Si está presentando un error y lee cualquier cosa relacionada con Java, probablemente el problema sea su memoria jvm. Puede editarlo en formato/etc/elasticsearch/jvm.options
. Para una máquina de memoria RAM de 1GB en el entorno de Amazon, mantuve mi configuración en:Después de configurar eso y reiniciar el servicio elasticsearch, funcionó a la perfección. La verificación de Nmap y UFW (si usa un firewall local) también debería ser útil.
fuente
Experimenté un problema similar.
Así es como lo resolví
Ejecute el comando de servicio a continuación para iniciar ElasticSearch
O
Si sigues recibiendo el error
Ejecute el comando de servicio a continuación para verificar el estado de ElasticSearch
O
Si obtiene una respuesta ( Activo: activo (en ejecución) ) como la que se muestra a continuación, entonces ElasticSearch está activo y en ejecución.
Luego, puede probar que su nodo Elasticsearch se está ejecutando enviando una solicitud HTTP al puerto 9200 en localhost usando el siguiente comando:
De lo contrario, si obtiene una respuesta diferente, es posible que deba depurar más para solucionarlo, pero ejecutar el comando a continuación lo ayudará a detectar qué advertencias están reteniendo el servicio ElasticSearch desde el inicio.
O
Si desea detener el servicio ElasticSearch , simplemente ejecute el comando de servicio a continuación;
O
N / B: Es posible que deba ejecutar el comando
sudo service elasticsearch status
Osudo systemctl status elasticsearch
cada vez que encuentre el error, para saber el estado de ElasticSearch servicio .Esto también se aplica a Kibana , ejecute el comando
sudo service kibana status
Osudo systemctl status kibana
cada vez que encuentre el error, para saber el estado de Kibana servicio de .Eso es todo.
Espero que esto ayude.
fuente
En este caso, en primer lugar, debe verificar la versión de Java usando el siguiente comando:
después de ejecutar este comando, obtienes algo como esto:
luego usa este comando:
y seleccione la versión siguiente
Ingrese para mantener la selección actual [+], o escriba el número de selección: 2
fuente
Mis 2 centavos
Acabo de seguir el procedimiento de instalación en Digital Ocean, aparentemente el paquete disponible en los repositorios no está actualizado, eliminé todo y seguí el procedimiento de instalación directamente desde Elastic Search y todo está funcionando ahora, básicamente el comportamiento listo para usar está activado un localhost apuntando a 9200. Lo mismo / problema encontrado con Kibana, la solución para mí también fue eliminar todo y seguir su procedimiento. Espero que esto le ahorre a alguien dos horas (¡el tiempo que pasé averiguando cómo configurar ELK!)
en
fuente
Actualice su jdk a la última versión mínima para su elasticsearch.
fuente
Cambie network.bind a 0.0.0.0 y http: port a 9200. La dirección de enlace 0.0.0.0 significa todas las direcciones IPv4 en la máquina local. Si un host tiene dos direcciones IP, 192.168.1.1 y 10.1.2.1, y un servidor que se ejecuta en el host escucha en 0.0.0.0, será accesible en ambas direcciones IP.
fuente
Si encuentra el error Conexión rechazada , simplemente ejecute el comando a continuación para verificar el estado del servicio ElasticSearch
Esto le ayudará a descifrar el estado del servicio ElasticSearch y qué hacer al respecto.
fuente
No es útil para 7.5.0 y superior.
fuente
Después de utilizar algunas de las respuestas anteriores, no olvide que después de una instalación de apt, podría ser necesario reiniciar por completo.
fuente
Solo para agregar esto, me encontré con muchos documentos a través de Google que decían configurar network.host en localhost.
Hacerlo me dio la infame conexión rechazada. Debe utilizar una dirección IP (127.0.0.1), no un FQDN.
Jeff
fuente
Asegúrese de que el puerto
9200
esté abierto para mi caso, era una instancia de Amazon, así que cuando lo abrí en mi grupo de seguridad, el comando curl funcionó.fuente
Desactivar SELinux funcionó para mí, aunque no lo sugiero, lo hice solo para un PoC
fuente
Mi problema era que no podía trabajar
localhost
, necesitaba configurarlo en la dirección IP de localhostnetwork.bind_host: 127.0.0.1
fuente
En mi caso, el problema es con la versión de Java, la instalé
open-jdk 11
previamente. Eso está creando el problema al iniciar el servicio. Lo cambiéopen-jdk 8
y empezó a funcionarfuente