Стек ELK успешно настроен.
используя grokdebug.herokuapp.com
мои шаблоны gork также действительны и выгружаются в ElasticSearch
filter {
if [type] == "some_log" {
grok {
match => { "message" => '%{WORD:word_1} %{TIME:time_1} %{DATE:date_1} %{NUMBER:number_1}'
}
overwrite => "message"
}
}
}
Этот Grok-анализ ввода полностью верен.
и выход
output {
elasticsearch {
protocol => "http"
}
}
Проблема в том, что все выгружаемые переменные имеют строковый тип.
Как заставить их войти в соответствующий тип в ElasticSearch (правильный тип сопоставления)
time_1, date_1 и number_1 имеют один и тот же тип, который имеет тип
"time_1":{
"type":"string",
"norms":{
"enabled":false
},
"fields":{
"raw":{
"type":"string",
"index":"not_analyzed",
"ignore_above":256
}
}
}
Я хочу, чтобы date_1 индексировался как тип даты, а number_1 - как числовой тип в эластичном поиске.
PS: Можно ли это сделать ?? определите поле Типа Elasticsearch из Logstash.
ИЛИ - Как отправить это поле с правильным типом в ElasticSearch.
Спасибо