Logstash 一种干净的方法来停止伐木

Logstash 一种干净的方法来停止伐木,logstash,Logstash,让我们假设我有一个Logstash实例正在运行,但希望完全停止它,例如更改它的配置 如何停止Logstash实例,同时确保它完成向Elasticsearch发送批量?我不想在停止logstash时丢失任何日志。logstash 1.5在响应SIGTERM信号关闭之前刷新管道,因此您应该能够使用服务logstash stop、init.d脚本或您通常使用的任何工具关闭管道 对于Logstash 1.4.x,SIGTERM信号会突然关闭Logstash,而不允许管道刷新所有飞行中的消息,但您可以发送

让我们假设我有一个Logstash实例正在运行,但希望完全停止它,例如更改它的配置


如何停止Logstash实例,同时确保它完成向Elasticsearch发送批量?我不想在停止logstash时丢失任何日志。

logstash 1.5在响应SIGTERM信号关闭之前刷新管道,因此您应该能够使用
服务logstash stop
、init.d脚本或您通常使用的任何工具关闭管道

对于Logstash 1.4.x,SIGTERM信号会突然关闭Logstash,而不允许管道刷新所有飞行中的消息,但您可以发送SIGINT以强制刷新。但是,有些插件(如redis input插件)不能很好地处理这个问题,并且会无限期地挂起。

使用Logstash 2.3:

Logstash在处理期间将所有事件保存在主内存中。Logstash通过尝试停止输入并在关闭前等待挂起事件完成处理来响应SIGTERM


资料来源:

太好了!你能提供一个链接到一些文档,用更多的细节来解释这种行为吗?我认为没有文档(至少1.4.x没有),但我可以看一下。我通过阅读代码找到了答案。