使用 logstash 來收集 log 做 log management 時,
如果你使用 elastic search 做預設的 search engine (output 使用 elasticsearch )
應該會注意到有三個 "_" 開頭內部使用的metadata。
_id _Eweo8-ySluo6awKTRssXw
_index logstash-2013.04.16
_type apache-access
Index Data
一般來說,使用 elasticsearch
我們使用PUT來索引一個json format 的record file
curl -XPUT 'http://localhost:9200/twitter/user/peicheng' -d '{ "name" : "Peicheng" }'
return
{"_index":"twitter","_type":"user","_id":"peicheng","_version":1,"created":true}
在使用 elasticsearch rest api 做 index 時,我們注意到了
twitter -> index name
user -> type
peicheng -> id (document id)
請注意這裡我們使用PUT的方式。
而如果你想要讓 elasticsearch 自動產生id呢? (automatic id generation )
所以,你在logstash裡面要是沒有特別指定 document_id的構造方法,
twitter -> index name
user -> type
peicheng -> id (document id)
請注意這裡我們使用PUT的方式。
Query Data
$ curl -XGET 'http://tmdesk:9200/twitter/user/peicheng?pretty=true'
{
"_index" : "twitter",
"_type" : "user",
"_id" : "peicheng",
"_version" : 1,
"found" : true, "_source" : { "name" : "peicheng" }
}
指定 要query 的 index , type ,跟 id。而如果你想要讓 elasticsearch 自動產生id呢? (automatic id generation )
$ curl -XPOST 'http://tmdesk:9200/twitter/user' -d '{ "name" : "peicheng" }'
{"_index":"twitter","_type":"user",
"_id":"dF8MsloXRg-RIe_Bq3xxsw",
"_version":1,"created":true}
elasticsearch就會幫你產生 _id。
沒有留言:
張貼留言