[elasticsearch]使用 logstash 收集 logs / log record 的 document id (_id)


使用 logstash 來收集 log 做 log management 時,
如果你使用 elasticsearch 做預設的 search engine (output 使用 elasticsearch )  應該會注意到有三個 “_" 開頭內部使用的metadata。

_id   _Eweo8-ySluo6awKTRssXw
_index  logstash-2014.12.30
_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的方式。

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}

所以,你在logstash裡面要是沒有特別指定 document_id的構造方法,elasticsearch就會幫你產生 _id。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s