已知:
0、LogStash 和 ES 的版本都是 2.3.1
1、LogStash 采集数据并发往 ES 是通过 _bulk API 的 POST 请求完成的;
2、在 ES 的源码中,已经获取到了 org.jboss.netty.handler.codec.http.HttpRequest 对象;
问题:
1、LogStash 发送到 ES 的数据格式是怎样的?
2、如何在 ES 的源码中,通过 HttpRequest 对象获取来自 _bulk API 的数据?
示例:
这里使用 curl 演示一下 _bulk API 以及问题2想要获取的内容
0、LogStash 和 ES 的版本都是 2.3.1
1、LogStash 采集数据并发往 ES 是通过 _bulk API 的 POST 请求完成的;
2、在 ES 的源码中,已经获取到了 org.jboss.netty.handler.codec.http.HttpRequest 对象;
问题:
1、LogStash 发送到 ES 的数据格式是怎样的?
2、如何在 ES 的源码中,通过 HttpRequest 对象获取来自 _bulk API 的数据?
示例:
这里使用 curl 演示一下 _bulk API 以及问题2想要获取的内容
curl -i -XPOST 'http://localhost:9200/_bulk/?pretty' -d '
{ "delete" : {"_index" : "test", "_type" : "employee", "_id" : "3" } }
{ "create" : {"_index" : "test", "_type" : "employee", "_id" : "3"} }
{ "first_name" : "Reka", "last_name" : "Downey", "age" : 22, "about" : "I like new things!", "interests" : ["sport", "read"] }
{ "index" : {"_index" : "test", "_type" : "employee"} }
{ "first_name" : "Lily", "last_name" : "Smith", "age" : 23, "about" : "I like swimming!", "interests" : ["swim"] }
{ "update" : {"_index" : "test", "_type" : "employee", "_id" : "3"} }
{ "docs" : {"age" : 24} }
'
问题2想要获取的内容是: { "delete" : {"_index" : "test", "_type" : "employee", "_id" : "3" } }
{ "create" : {"_index" : "test", "_type" : "employee", "_id" : "3"} }
{ "first_name" : "Reka", "last_name" : "Downey", "age" : 22, "about" : "I like new things!", "interests" : ["sport", "read"] }
{ "index" : {"_index" : "test", "_type" : "employee"} }
{ "first_name" : "Lily", "last_name" : "Smith", "age" : 23, "about" : "I like swimming!", "interests" : ["swim"] }
{ "update" : {"_index" : "test", "_type" : "employee", "_id" : "3"} }
{ "docs" : {"age" : 24} }
2 个回复
nodexy - Another developer !
赞同来自:
三斗室 - ELK
赞同来自:
不过你是要干嘛?