Когда Logstash отправляет ACK на источник ввода

Я читал об обязательстве filebeat по крайней мере один раз доставить, и я понял, что до тех пор, пока подтверждение отправленной строки журнала не будет получено filebeat, эта строка будет отправлена ​​снова (в случае перезапуска файла). Теперь предположим, что в моем решении я использую Filebeat, Logstash и еще один компонент, который logstash использует для фильтрации. И после фильтрации logstash отправляет строку в elasticsearch.

Теперь ниже контрольные точки, где мы можем потерять данные:

  1. Filebeat завершил работу, не получив подтверждения от logstash. В этом случае мы знаем, что строка будет снова отправлена ​​filebeat.
  2. Предположим, Filebeat отправил строку, а logstash применяет к ней фильтрацию с помощью внешнего компонента, а затем, когда он пытается отправить в elasticsearch, и в то же время происходит сбой logstash/elasticsearch, мы потеряем эти данные.

Мой вопрос:

В основном logstash обрабатывает данные в следующей последовательности:

INPUT --> FILTER --> OUTPUT

Итак, я хочу знать, на каком этапе logstash отправит ACK в filebeat. Я хочу в основном понять, как и когда отправляются ACKS. Я попытался найти его на официальных сайтах Google и ELK, но не получил подробной информации.

Может ли кто-нибудь помочь мне понять эти детали? заранее спасибо.


person pbajpai    schedule 14.07.2017    source источник


Ответы (1)


Вход будет ACK, когда он помещает события во внутреннюю очередь для рабочих конвейера. Именно тогда поток ввода плагина считает событие завершенным.

То, что происходит с рабочими конвейера, отчасти зависит. Если у вас настроены и включены постоянные очереди, эти задания будут выбраны снова после перезапуска logstash, и никакие данные не должны быть потеряны (если это так, это ошибка). Если у вас нет постоянных очередей, эти данные будут потеряны.

person sysadmin1138    schedule 14.07.2017