Logstash7.4动态加载配置文件

本文介绍从Logstash 2.3版本开始,如何通过--config.reload.automatic选项实现动态监听配置文件修改并自动更新的功能。文章详细解释了自动加载配置文件的工作原理,包括配置文件更改后的管道切换流程及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从logst2.3开始,我们就可以把Logstash配置成动态监听配置文件修改、再加载配置文件功能。
在启动logstash的时候使用命令行选项--config.reload.automatic(或是-r)就可以将logstash配置成动态更新配置信息。
举个例子:

bin/logstash -f apache.config --config.reload.automatic

注意:当在命令行中使用-e来传入配置信息的时候,–config.reload.automatic就不能起作用。

默认情况下,logstash每个3s会检查一次配置信息是否更改。如果要修改这个间隔时间,可以使用--config.reload.interval <interval>选项。其中,interval规定了logstash检查配置文件的时间间隔,以秒为单位。

如果logstash在没有启用自动加载功能的情况下已经启动的话,可以通过发送SIGHUP(signal hangup)到运行logstash的进程中,迫使logstash重新加载配置文件、并且重新启动管道。

kill -SIGHUP 14175

其中14175为运行logstash的进程ID。

linux下kill的用法除了参考官方文档外,也可以参照该文档:https://www.sogou.com/link?url=hedJjaC291OfPyaFZYFLI4KQWvqt63NBpc2t0hZYVCeNMhcNHpE5BQ…

查找运行logstash的进程ID的方法:
通过命令行方式启动logstash的时候,市级上启动的是java程序。所以用ps -ef|grep logstash找到的进程实际上是java的进程。用ps PID查看时得到的是JAVA进程信息。

logstash的自动加载配置文件是如何工作的?

当logstash发现配置文件发生更改时,它首先停止当前管道的所有输入,然后尝试根据新的配置文件建立新的管道。在验证了新的配置文件的语法后,logstash还会验证所有的输入和输出能否初始化(比如,要求的端口是否已经打开)。如果所有的检查都通过的话,logstash就会切换当前的管道到新的管道。如果其中的一项检查失败的话,原先的管道继续工作,同时在控制台中输出错误信息。

在自动加载配置文件过程中,JVM不会重新启动。管道的生成和切换都是在同一个进程中进行。

只有当配置文件发生变化引发再加载(或是管道重启的时候),grok样式文件的修改才会重新加载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值