Чистый способ остановить 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