Всем привет!
Собираю логи logstash с сервера.
input { file { path => "C:/HTTP/test/log/**/*" start_position => "beginning" close_older => "1 hour" ignore_older => "2 hour" sincedb_clean_after => "2 hour" } } output { elasticsearch { hosts => ["http://elastic.test.com:9222"] index => "test-%{+MM.dd}" }
проблема в том что эластик меняет логи местами, файл один и тот же
логи с файла
20:02:17.456 Hello
20:02:19.269 World
20:05:02.572 Thanks
20:05:02.572 Elastic
20:05:02.572 Kibana
20:05:12.572 Logstash
В эластике
20:02:17.456 Hello
20:02:19.269 World
20:05:02.572 Thanks
20:05:02.572 Kibana
20:05:12.572 Logstash
20:05:02.572 Elastic
Отсюда вопрос, как с этим бороться?
Elasticsearch порядок входящих документов никак не учитывает. Все что можно сделать - это отсортировать по какому-нибудь уникальному возрастающему полю, например время. Если разрешения по времени не хватает и очень нужен порядок, то можно добавить поле содержащие offset лога как тай-брейк в сортировку.
См. выше:
а можно пример какой то?
Пример добавления поля в сортировку есть в документации. Позиция в логе - это просто поле в filebeat.
а использую logstash , пробовал filebeat много путей с логами он не успевает, так быстро их отрабатывать
Logstash это не поддерживает https://github.com/logstash-plugins/logstash-input-file/issues/7
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.