Logstash с постоянной очередью

Я запустил logstash, используя следующие конфигурации:

Внутри logstash.yml:

queue.type: persisted
queue.max_bytes: 8gb
queue.checkpoint.writes: 1

файл конфигурации:

input {
    beats {
        port => "5043"
    }
}
filter {
    grok {
        match => {
            "message" => "%{COMBINEDAPACHELOG}"
        }
    }
    geoip {
        source => "clientip"
    }
}
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "test"
        document_type => "tw"
    }
}

У меня такая ситуация.

  1. Представьте, что elasticsearch отключен

  2. А теперь представьте, что, когда elasticsearch отключен, logstash получает события регистрации

  3. А теперь представьте, что мы тоже отключили logstash

Теперь, если я включаю logstash и elasticsearch, logstash не отправляет сообщения, полученные на шаге 2 - то есть, когда elasticsearch был отключен, а logstash получал события.


person Abesalomi Gogatishvili    schedule 10.02.2017    source источник
comment
В каком порядке вы снова включаете Logstash и Elasticsearch после шага 3? Сначала ES, дождитесь зеленого, затем Logstash?   -  person Val    schedule 16.05.2017
comment
У вас возникла эта проблема или вы задаете вопрос о том, что, по нашему мнению, произойдет в таком случае?   -  person Zee    schedule 10.01.2018
comment
Почему бы не использовать файлы буферов, которые будут удалены, может быть, через 3 дня?   -  person MrSimple    schedule 25.01.2018


Ответы (2)


В настоящее время постоянные очереди Logstash ведут себя следующим образом:
«Когда функция постоянной очереди включена, Logstash сохраняет события на диске. Logstash фиксируется на диске в механизме, называемом контрольными точками».

https://www.elastic.co/guide/en/logstash/current/persistent-queues.html https://www.elastic.co/guide/en/logstash/current/persistent-queues.html#durability-persistent-queues.

person straville    schedule 26.03.2019

Это все, что есть в файле logstash.yml для вашего конвейера? Вы должны определить настройки своего конвейера либо в logstash.yml, либо в pipelines.yml. Например, это должно выглядеть так:

- pipeline.id: Beats
  path.config: "/LogStash/pipelines/beatspipeline.yml"
  queue.type: persisted
  path.queue: /Logstash/data/queue
  queue.max_bytes: 10gb

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

person Grunt    schedule 30.12.2020