Есть ли способ заставить Logstash Forwarder отправлять только новые журналы?

Я использую следующий файл конфигурации для моего Logstash Forwarder:

{
  "network": {
    "servers": [ "logstash-server:logstash-door" ],
    "ssl ca": "server.crt",
    "timeout": 15
  },

  "files": [
    {
      "paths": [ "myLogFile.log" ],
      "fields": { "type": "myLog" }
    }
  ]
}

Это работает нормально. Но если приложение остановится, когда я верну его, оно снова отправит старые журналы на мой logstash-сервер. Это большая проблема, есть ли способ избежать повторной отправки старых журналов?


person R. Karlus    schedule 22.06.2015    source источник


Ответы (1)


logstash-forwarder ведет «реестр», в котором перечислены все файлы, которые он отслеживает, и текущее смещение в этом файле. Если он не сможет записать этот файл, он не будет знать, с чего начать, когда вы перезапустите процесс.

Проверьте свой сценарий запуска, чтобы узнать, где он записывает реестр (с именем «.logstash-forwarder»). Старые версии записывали его в каталог, в котором была запущена программа, а новые версии записывали в /var/lib/logstash-forwarder.

Запуск logstash-forwarder в режиме отладки (-quiet=false) также может дать вам дополнительную информацию.

person Alain Collins    schedule 22.06.2015
comment
На самом деле, мне просто нужно включить -tail=true, и форвардер загрузит смещение. Спасибо чувак. - person R. Karlus; 23.06.2015
comment
Это для новых файлов. Ранее просмотренные файлы контролируются реестром. - person Alain Collins; 23.06.2015