현재 키바나에서 검색되는 데이터의 형식은 이러합니다.
{
"_index": "ggg",
"_type": "log",
"_id": "AV55PAZJZmaqPQPklyRh",
"_version": 1,
"_score": null,
"_source": {
"date": "201709120590",
"geoip": {},
"offset": 338,
"max": "1000",
"input_type": "log",
"source": "d:\\log.log",
"message": "{\"date\": \"201709120590\",\"max\": \"1000\",\"locations\": [{\"lat\": \"37.12611770687813\",\"lon\": \"126.77791213876573\"}]}",
"type": "log",
"tags": [
"beats_input_codec_plain_applied",
"_dateparsefailure",
"_geoip_lookup_failure"
],
"@timestamp": "2017-09-13T03:15:29.392Z",
"@version": "1",
"beat": {
"hostname": "DESKTOP-993J7Q2",
"name": "DESKTOP-993J7Q2",
"version": "5.5.2"
},
"host": "DESKTOP-993J7Q2",
"locations": [
{
"lon": "126.77791213876573",
"lat": "37.12611770687813"
}
]
},
"fields": {
"@timestamp": [
1505272529392
]
},
"sort": [
1505272529392
]
}
현재 locations 에 geo_point 맵핑을 해주고싶지만 해당 부분이 진행이 되질않아 질문드립니다...
아래는 logstash conf 파일 설정입니다.
input {
beats { port => "5044"
}
}
filter {
json{
source => 'message'
}
date{
match => ["date" , "yyyyMMddHHmmss"]
}
mutate {
convert => {
"[location][lat]" => "float"
"[location][lon]" => "float"
}
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "localhost:9200"
index => "ggg"
}
}