Почему Logstash перезагружает повторяющиеся данные из файла в Linux?

Я использую logstash, elasticsearch и kibana. Мой файл конфигурации logstash выглядит следующим образом.

input {
  file {
    path => "/home/rocky/Logging/logFiles/test1.txt"
    start_position => "end"
    sincedb_path => "test.db"
 }
}

output {
  stdout { codec => rubydebug }
  elasticsearch { host => localhost }
}

Когда я запускаю Logstash в среде Windows, он работает нормально, но когда я использую ту же конфигурацию в своей виртуальной ОС Linux (Fedora), это создает проблему. В Fedora, когда я вставляю что-либо в конец файла журнала, когда работает logstash. Иногда он отправляет все данные файла с начала, иногда половину данных. Но он должен загружать только новые данные, добавленные в этот файл журнала. также файл db правильно хранит данные. Тем не менее, это не дает надлежащих данных в Fedora. Пожалуйста помоги.


person Rocky    schedule 12.08.2014    source источник
comment
Как вы редактируете файл? Logstash запоминает, сколько байтов ввода было прочитано, и если вы сделаете что-нибудь, кроме добавления к файлу, это приведет к повреждению файла sincedb.   -  person rutter    schedule 14.08.2014
comment
Я добавляю новые строки в файл журнала в конце файла, и файл с тех пор обновляется правильно, но он не читает файл журнала правильно. @руттер   -  person Rocky    schedule 14.08.2014
comment
На самом деле у меня были похожие проблемы, но с платформой Windows, где задокументирован ряд проблем с вводом файлов и базой данных. Я обнаружил, что разумно всегда контролировать document_id, когда это возможно, не только из-за различных проблем с logstash, но и потому, что вы никогда не знаете, когда вам придется снова запускать частичные старые журналы, которые не были обработаны из-за других неисправностей, например elasticsearch, сеть и т. д.». Установка document_id защищает ваши данные.   -  person Roman    schedule 26.09.2014


Ответы (1)


У меня была аналогичная проблема на моей машине LinuxMint с использованием официального образа докера logstash. Я использовал текстовый редактор (Geany), чтобы добавить новые строки в файл. Поиграв еще немного, я понял, что это должно быть связано с тем, что делал мой текстовый редактор (Geany) при сохранении файла после того, как я добавил новые строки.

Когда я вместо этого добавлял новые строки с помощью простой команды echo, все работало нормально:

echo "some new line" >> my_file.log

Я знаю, что эта ветка устарела, но это была единственная вещь, которая вообще появилась, когда я гуглил об этом, так что, надеюсь, это поможет кому-то еще...

person user3587041    schedule 19.09.2016