У меня есть экземпляр elasticsearch, который анализирует мои файлы журналов в соответствии с моим шаблоном регулярного выражения, который берет дату из файла журнала. Затем дату следует использовать в качестве шаблона индекса для целей поиска эластичных материалов. Вот где это неправильно. Мой logstash-pipeline-config-file выглядит следующим образом:
input {
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{LOGGERLEVEL:log}%{PIPE:k}%{TIMESTAMP_ISO8601:datetime}%{GREEDYDATA:data}"}
}
date {
match => ["datetime", "ISO8601"]
timezone => "Europe/Helsinki"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
}
LOGGERLEVEL и PIPE являются определяемыми пользователем регулярными выражениями. Эта версия анализирует журналы должным образом, но индексирует первые два часа дня до предыдущей даты. Если я изменю файл конфигурации следующим образом, elasticsearch вообще проигнорирует первые два часа:
input {
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{LOGGERLEVEL:log}%{PIPE:k}%{TIMESTAMP_ISO8601:datetime}%{GREEDYDATA:data}"}
}
date {
match => ["datetime", "ISO8601"]
timezone => "Europe/London"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
}
Как настроить конвейер так, чтобы один день индексировался целиком и под тем же индексом, что и дата, найденная в файле журнала?