Logstash 参考指南(关闭Logstash)
关闭Logstash
如果你将Logstash作为服务运行,请使用以下命令之一来停止它:
- systemd使用:
systemctl stop logstash
- upstart使用:
initctl stop logstash
- sysv使用:
/etc/init.d/logstash stop
如果你正在POSIX系统的控制台中直接运行Logstash,那么你可以通过向Logstash发送SIGTERM来停止它,例如:
kill -TERM {logstash_pid}
或者,在控制台中输入Ctrl-C
。
在受控关闭期间会发生什么?
当你试图关闭一个正在运行的Logstash实例时,在它可以安全关闭之前,Logstash会执行几个步骤,它必须:
- 停止所有输入、过滤和输出插件
- 处理所有运行中的事件
- 终止Logstash进程
以下条件影响关闭过程:
- 一个输入插件以缓慢的速度接收数据。
- 一个缓慢的过滤器,例如执行
sleep(10000)
的Ruby过滤器或执行非常繁重查询的Elasticsearch过滤器。 - 一个断开连接的输出插件,正在等待重新连接以刷新运行中的事件。
这些情况使得关闭过程的持续时间和成功不可预测。
Logstash有一个失速检测机制,可以分析关闭期间管道和插件的行为,这种机制定期生成关于内部队列中运行中的事件计数和繁忙工作线程列表的信息。
为使Logstash在中断运行的情况下强制终止,当你启动Logstash时使用--pipeline.unsafe_shutdown
。
失速检测的例子
在本例中,缓慢的过滤器执行可以防止管道完全关闭,由于Logstash是由--pipeline.unsafe_shutdown
标志启动的,因此关闭会导致20个事件的丢失。
bin/logstash -e 'input { generator { } } filter { ruby { code => "sleep 10000" } } output { stdout { codec => dots } }' -w 1 --pipeline.unsafe_shutdown Pipeline main started ^CSIGINT received. Shutting down the agent. {:level=>:warn} stopping pipeline {:id=>"main", :level=>:warn} Received shutdown signal, but pipeline is still waiting for in-flight events to be processed. Sending another ^C will force quit Logstash, but this may cause data loss. {:level=>:warn} {"inflight_count"=>125, "stalling_thread_info"=>{["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>19, "name"=>"[main]>worker0", "current_call"=>"(ruby filter code):1:in `sleep'"}]}} {:level=>:warn} The shutdown process appears to be stalled due to busy or blocked plugins. Check the logs for more information. {:level=>:error} {"inflight_count"=>125, "stalling_thread_info"=>{["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>19, "name"=>"[main]>worker0", "current_call"=>"(ruby filter code):1:in `sleep'"}]}} {:level=>:warn} {"inflight_count"=>125, "stalling_thread_info"=>{["LogStash::Filters::Ruby", {"code"=>"sleep 10000"}]=>[{"thread_id"=>19, "name"=>"[main]>worker0", "current_call"=>"(ruby filter code):1:in `sleep'"}]}} {:level=>:warn} Forcefully quitting logstash.. {:level=>:fatal}
当--pipeline.unsafe_shutdown
未启用,Logstash继续定期运行并生成这些报告。
相关推荐
goodstudy 2020-08-19
weikaixxxxxx 2020-08-01
liulin0 2020-07-26
AFei00 2020-07-26
娜娜 2020-07-20
偏头痛杨 2020-07-18
winxcoder 2020-07-18
superviser000 2020-06-28
liulin0 2020-06-25
liulin0 2020-06-16
wangfengqingyang 2020-06-11
cullinans 2020-06-09
winxcoder 2020-06-08
citic 2020-06-06
goodstudy 2020-06-05
superviser000 2020-05-30
yuzhongdelei0 2020-05-15
wzhwangzhuohui 2020-05-12
李玉志 2020-05-11