Чистый способ остановить Logstash

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

Как я могу остановить экземпляр Logstash, гарантируя, что он закончит отправку массивов в Elasticsearch? Я не хочу потерять какие-либо журналы при остановке logstash.

2 ответов


Logstash 1.5 сбрасывает трубопровод перед выключением в ответ на сигнал SIGTERM, поэтому вы должны иметь возможность отключить его с помощью service logstash stop, init.D-скрипт или что-то еще, что вы обычно используете.

С Logstash 1.4.X сигнал SIGTERM резко отключает Logstash, не позволяя конвейеру сбросить все сообщения в полете,но вы можете отправить SIGINT, чтобы принудительно сбросить. Однако некоторые плагины (например, плагин ввода redis) не обрабатывают это изящно и висят безгранично.


С Logstash 2.3:

Logstash сохраняет все события в основной памяти во время обработки. Logstash отвечает на SIGTERM, пытаясь остановить входы и ожидая завершения обработки ожидающих событий перед завершением работы.

источник:https://www.elastic.co/guide/en/logstash/2.3/pipeline.html