Error de conexion con maquina con elasticsearch


(Ramon Saborit Villalonga) #1

Hola soy nuevo en el framework elasticsearch. He tenido el siguiente mensaje de error en la maquina con elasticsearch y no entiendo el significado real de lo que ha podido ocurrir:

[2018-05-25T18:50:02,710][WARN ][o.e.h.n.Netty4HttpServerTransport] [nodo de ramon] caught exception while handling client http traffic, closing connection [id: 0xcd8221fd, L:/192.168.0.234:9200 - R:/192.168.0.234:57662]
java.io.IOException: Conexión reinicializada por la máquina remota
at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:?]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[?:?]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[?:?]
at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[?:?]
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[?:?]
at io.netty.buffer.PooledHeapByteBuf.setBytes(PooledHeapByteBuf.java:261) ~[netty-buffer-4.1.16.Final.jar:4.1.16.Final]
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1106) ~[netty-buffer-4.1.16.Final.jar:4.1.16.Final]
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:343) ~[netty-transport-4.1.16.Final.jar:4.1.16.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:545) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:499) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) [netty-transport-4.1.16.Final.jar:4.1.16.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.16.Final.jar:4.1.16.Final]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]

Tengo 10 maquinas enviado sus logs de apache, mysql y dcm4chee a una sola maquina que tiene logstash, elasticsearch y kibana instalado. Las 10 maquinas tienen instalado filebeat y esta configurado para enviar esos logs a la maquina 192.168.0.234 donde logstash los recoge, clasifica, trocea y filtra. Despues los envia a elasticsearch creando 5 indices cada dia. Despues uso kibana para ver los resultados indexados por ES.
Deje encendido todo el sistema y a las 4 horas aparecio el mensaje que hay arriba y la maquina se auto apagó. No se que ha pasado, ni porque ha fallado. Si pueden ayudarme y explicarme mi error se lo agradeceria mucho.
Esta es mi maquina con los 3 frameworks (LS, ES,KiB):
Ubuntu 17 arquitectura 64
16GB RAM
500 GB disco duro
8 nucleos Intel(R) Xeon(R) CPU E5-2620 v2 2.10GHz
Mi configuracion para logstash.yml (no pongo el filtro porque se que funciona bien):
pipeline:
batch:
size: 125
delay: 5

pipelines.yml:
pipeline.id: supertuberiaRamon
pipeline.workers: 8
queue.type: persisted

Configuracion de Elasticsearch:
network.host: "192.168.0.234"
http.port: 9200

Fichero jvm.options de elasticsearch:
Xms represents the initial size of total heap space
Xmx represents the maximum size of total heap space
-Xms8g
-Xmx8g
Le puse 8 GB de RAM la mitad de la RAM real como indica el manual.

Configuracion de kibana:
server.port: 5601
server.host: "192.168.0.234"
elasticsearch.url: "http://192.168.0.234:9200"

El resto de las opciones de configuración estan por defecto, no he puesto los .name porque no creo que el error venga por ahi.
Tengo la versión logstash, elasticsearch y kibana 6.2.2 sin x-pack.

Dejo el sistema encendido y después de 4 horas la máquina se rompió y el mensaje anterior es lo último que me dijo.

Alguien me puede ayudar??

Cualquier ayuda es bien recibida. Porque me gustaria entender que ha sucedido y arreglarlo. Y tener un bonito sistema con 10 maquinas enviando informacion a otra y viendo con el kibana unas preciosas graficas de datos.

Gracias.


#2

Hola Ramon, un usuario tuvo un problema similar y era porque cerraba el cliente antes de que la respuesta haya sido enviada.

Saludos

MrNerd


(Ramon Saborit Villalonga) #3

Cuando dices cliente te refieres a la maquina donde estan los 3 frameworks??
Porque he estado mirando los logs del sistema. Y creo que ha sido culpa de ssh. Estaba ejecuanto ES a traves de una conexion ssh desde un terminal que se cerro por inactividad a la misma hora que salto el error en ES.
Tengo los 3 frameworks funcionando desde carpetas descomprimidas con tar, porque los logs te salen por pantalla y es mas facil detectar errores para mi.
Para que esto no me vuelva a pasar seria mejor instalar los 3 frameworks en el sistema?


(Eduardo González de la Herrán) #4

Hola!

Como bien comenta @MrNerd, el error en cuestión simplemente indica que un cliente (de hecho de la propia máquina si te fijas en la IP) ha cortado la conexión con elasticsearch antes de tiempo. Vamos, que uno de los clientes de elasticsearch en esa máquina (logstash o kibana) se ha parado y ha cortado la conexión.

caught exception while handling client http traffic, closing connection [id: 0xcd8221fd, L:/192.168.0.234:9200 - R:/192.168.0.234:57662]
java.io.IOException: Conexión reinicializada por la máquina remota

Pero para mi este error es solo una consecuencia y no es el problema o la causa de lo que sea que haya pasado, ni tendría que hacer que la máquina se reiniciara.

Si habías lanzado los servicios (elasticsearch, logstash y kibana) desde una conexión SSH, puede ser que al cerrarse la conexión el servicio se haya parado, sí (pero eso no explica que la máquina se reinicie!). Para esto puede estar bien que los lances con nohup o como demonio, como explican aquí:
https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-targz.html#setup-installation-daemon

Deje encendido todo el sistema y a las 4 horas aparecio el mensaje que hay arriba y la maquina se auto apagó. No se que ha pasado, ni porque ha fallado

Muy raro, mira el histórico de comandos, errores en syslog o en la salida de dmesg, mira el uso de la memoria, ya que logstash es un servicio que demanda también mucha memoria y lo tienes en la misma máquina que elasticsearch, mira espacio en disco.

Ya nos dices si encuentras la causa o te vuelve a pasar!
En cuanto a la configuración recomendada de JVM de elasticsearch, recuerda que está pensada para máquinas que solamente corren Elasticsearch. Si además ejecutas logstash deberías dimensionar las JVMs de forma que no te utilicen toda la RAM del sistema (y dejando RAM para el sistema operativo y cache de E/S).

Saludos!
Eduardo


(Ramon Saborit Villalonga) #5

Gracias eedugon y MrNerd. He usado el comando nohup y lleva todo el dia funcionando sin problemas.
Concretamente he echo lo siguiente:
nohup bin/elasticsearch &

Y para ver los mensajes:
tail -f nohup.out

Por si las moscas tambien hago un keepAlive yes de ssh cada 60 segundos modificando el fichero /etc/ssh/sshd_config añado al final:
KeepAlive yes
ClientAliveInterval 60

Gracias tema resuelto en el foro en castellano que en el foro en Ingles.


#6

@Ramon_Saborit_Villal, sin problema, para eso estamos!!


(Carlos Nunes) #7

Hola, buenos dias, ey me podrias ayudar con mi escenario?

1 virtualbox: kibana y elasticsearch
2. virtualbox: netdata y packetbeats

Ya configure Netdata para que me envie datos a mi elasticsearch el problema es que nose verlos desde Elastic; me podrias orientar?


(system) #8

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.