Я использовал logstash для вставки данных в упругий поиск, а файл conf выглядит как
grok {
match => [
"message" , "%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}",
"message" , "%{COMMONAPACHELOG}+%{GREEDYDATA:extra_fields}"
]
overwrite => [ "message" ]
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
geoip {
source => "clientip"
}
Теперь в Elastic Search отображение выполняется как
{
"response" => "200",
"geoip" => {
"timezone" => "Asia/Kolkata",
"country_code3" => "IN",
"location" => {
"lon" => 80.2833,
"lat" => 13.0833
},
"region_code" => "TN",
"country_name" => "India",
"longitude" => 80.2833,
"city_name" => "Chennai",
"region_name" => "Tamil Nadu",
"latitude" => 13.0833,
"continent_code" => "AS",
"postal_code" => "600073",
"country_code2" => "IN",
"ip" => "122.15.151.189"
},
"timestamp" => "31/May/2019:05:12:22 -0700",
"request" => "/favicon.ico",
"ident" => "-",
"auth" => "-",
"agent" => "\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\"",
"referrer" => "\"http://example.com/\"",
"@timestamp" => 2019-05-31T12:12:22.000Z,
"httpversion" => "1.1",
"verb" => "GET"
}
А теперь при попытке загрузить make-визуализатор в KIBANA geoHash не работает, так как geoip.location не определен как «тип»: «geo_point».Я уже вставил все данные.Так что я могу сделать что-нибудь, чтобы изменить отображение и обновить индекс.я понял, что мне нужно добавить дополнительное поле в grok, создать поле «geoip.location» и заново проанализировать весь журнал.но есть ли способ создать столбец в существующем Elastic Index и объединить данные из 2 столбцов?
Like geoip.location2 merged from geoip.location.lon and location.lat