ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
[TOC] # 重载配置文件 从Logstash2.3开始,你可以配置Logstash自动检测配置文件变动并自动重载。 启动Logstash的时候使用`--config.reload.automatic`或`-r`选项来开启自动重载配置。例如: ```bash bin/logstash -f apache.config --config.reload.automatic ``` > ```bash bin/logstash -f apache.config --config.reload.automatic ``` > <font color=#DC143C size=4>NOTE</font>:如果在命令行指定了`-e`选项,则`--config.reload.automatic`选项不可用。 默认情况下,Logstash每隔3秒检查一次配置文件的变化。要改变这个间隔,可以使用`--config.reload.interval <interval>`选项,其中,`interval`指定定期检查配置文件是否更改的频率。 如果Logstash已经运行并且没有开启自动重载,你可以强制Logstash重新载入配置文件并且重启管道通过发送一个SIGHUP信号。比如: ```bash kill -1 14175 ``` 其中14175是正在运行的Logstash的进程号。 # 自动重载配置是如何工作的 当Logstash检测到配置变动,它会通过停止所有的inputs来停止当前管道,并尝试使用新的配置来创建一个新的管道。验证新配置的语法后,Logstash会验证是否可以初始化所有输入和输出(例如,所有必需的端口都已打开)。 如果检查成功,Logstash将使用新管道交换现有管道。 如果检查失败,则旧管道继续运行,并将错误传播到控制台。 在自动重载配置期间,JVM不会重新启动。创建和交换管道都发生在同一个进程中。 [Grok](https://www.elastic.co/guide/en/logstash/6.4/plugins-filters-grok.html)匹配规则的改变也会被重载,但只有改变发生在配置文件中才会触发重载(或者叫做管道重启)。