Я изучаю, как использовать logstash, и сталкиваюсь с некоторыми проблемами при чтении файла с logstash, который постоянно обновляется. Вот мой тест:
- logstash.conf
input {
file {
path => ["/usr/share/logs_data/first_log_test.log"]
start_position => "beginning"
}
}
filter {
grok {
match => ["message", "(?<execution_date>\d{4}-\d{2}-\d{2}) (?<execution_time>\d{2}:\d{2}:\d{2})%{GREEDYDATA}ParaBrutos/configs/pipelines/(?<crawler_category>([^/])+)/(?<crawler_subcategory>([^-])+)-(?<crawler_name>([^.])+).json"]
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
user => "elastic"
password => "changeme"
ecs_compatibility => disabled
index => "logs_second"
}
}
Во-первых, я использую код этого репозитория для установки стека ELK в докеризированном виде.
Я начал с этого тестового файла журнала пустым, а затем добавил несколько строк, которые сопоставляют шаблон, одну за другой, в текстовом редакторе, одновременно видя шаблоны индекса в обновлении кибаны. Однако каждая новая строка, которую я добавляю в этот тестовый журнал, не добавляется сама по себе, и я вижу совпадения старых записей в шаблонах индекса kibana.
Что случается?
Может ли это быть связано с тем, что фильтры времени не выбраны при создании шаблона индекса?
Или что-то связанное с
since_db
настройками? Но что? Потому что по умолчанию не должно сохраняться последнее прочитанное положение файла?Или что-то связанное с
start_position
? Несмотря на то, что согласно документации плагина, предполагается, что он вступит в силу только при первом чтении файла?
Я немного растерялся, много чего перепробовал и до сих пор плохо понимаю, что происходит. Не могли бы вы помочь мне?