elasticsearch - significado - kibana tools
cómo solucionar este código error de excepción elasticsearch (4)
Actualmente estoy trabajando con elasticsearch, logstash y kibana.
recibo una excepción que no puedo transmitir.
Primero, esto es lo que obtengo cuando puse ip: 9200 / _cluster / health en mi navegador ...
{
"cluster_name":"mr-cluster",
"status":"yellow",
"timed_out":false,
"number_of_nodes":1,
"number_of_data_nodes":1,
"active_primary_shards":5,
"active_shards":5,
"relocating_shards":0,
"initializing_shards":0,
"unassigned_shards":5
}
Esto es lo que obtiene kibana cuando intenta solicitar búsqueda elástica
Remote Address:ip:9200
Request ip:9200/_all/_search
Request Method:POST
Status Code:200 OK
Parece bien hasta ahora ..
Aquí está mi archivo de configuración de logstash:
input {
gelf {
port => "5000"
}
udp {
port => "5001"
}
}
output {
file {
path => "/home/g/stdout.log"
}
elasticsearch {
cluster => "mr-cluster"
codec => "json"
}
}
Algo bastante simple cuando solo uso un archivo como salida funciona perfectamente, el logstash funciona. El problema es cuando quiero usar elasticsearch como salida, nada funciona más (salida de archivo de evento) y obtengo esta excepción de elasticsearch. Estuve buscando en Google durante horas y no encontré la solución.
Aquí está la excepción:
[2014-05-21 09:18:35,060][WARN ][http.netty ] [mr-node-elasticsearch] Caught exception while handling client http traffic, closing connection [id: 0x27d0ccce, /0:0:0:0:0:0:0:1:44164 => /0:0:0:0:0:0:0:1:9200]
java.lang.IllegalArgumentException: empty text
at org.elasticsearch.common.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:97)
at org.elasticsearch.common.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:62)
at org.elasticsearch.common.netty.handler.codec.http.HttpRequestDecoder.createMessage(HttpRequestDecoder.java:75)
at org.elasticsearch.common.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:189)
at org.elasticsearch.common.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:101)
at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500)
at org.elasticsearch.common.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.elasticsearch.common.netty.OpenChannelsHandler.handleUpstream(OpenChannelsHandler.java:74)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
¡Gracias por ayudar chicos!
Cambiar el puerto a 9300 funciona bien. Pero es mejor verificar los servicios elásticos de búsqueda. Podría ser hasta. Y la indexación no se llevaría a cabo, por lo tanto, esta excepción. Yo también soy principiante en ELK stack.
Además, si no desea cambiar los puertos, inicie sesión en cada nodo elasticsearch y ejecute /etc/init.d/elasticsearch start
Cuando recibí este error, cambié el puerto de 9200 a 9300. Espero que funcione para usted.
nota: soy un principiante de elasticsearch.
probablemente esto NO resuelva su problema, pero probablemente ayudará a otros principiantes que buscaron el mismo mensaje de error y fueron guiados a esta página.
El error que cometí estaba en la configuración de las instancias Elastic para el descubrimiento unicast. Inadvertidamente agregué el número de puerto 9200 a la configuración de la lista de hosts de unidifusión.
Incorrecto:
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["localhost.localdomain:9200"]
Correcto:
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["localhost.localdomain"]
La forma en que está configurando elasticsearch (utilizando solo el nombre de clúster) activa el descubrimiento de multidifusión del clúster. Puede intentar configurar directamente en el clúster para ver si funciona:
elasticsearch {
host=>"ip_here"
port=>9200
protocol=>http
}
Además, la salida del clúster dijo que su clúster estaba en un estado "amarillo", por lo que es posible que desee averiguar qué está sucediendo allí: desea que sea "verde".