Logstash 如何自动重载(Auto-Reload)配置?

Logstash 启动加 --config.reload.automatic 即开启配置热重载,--config.reload.interval 控制检查间隔(默认 3 秒)。改完 conf 文件无需重启进程。本文给出用法与失败回滚行为说明。

最佳实践
Logstash 如何自动重载(Auto-Reload)配置?封面

启动时加 --config.reload.automatic 即可:Logstash 默认每 3 秒检查一次配置文件变化,发现修改自动平滑重载管道——不丢数据、不需要重启进程。

用法

bin/logstash -f /etc/logstash/conf.d/ \
  --config.reload.automatic \
  --config.reload.interval 5s

或在 logstash.yml 中持久化:

config.reload.automatic: true
config.reload.interval: 5s

重要行为

  • 新配置校验失败(语法错误、插件问题)→ Logstash 继续使用旧配置运行,错误写日志——不会因为坏配置把管道搞挂;
  • 重载是管道级:input 重启意味着文件 input 会从上次记录的位置(sincedb)继续;
  • Systemd 部署同理:把参数写进启动命令或 logstash.yml。

配套建议

生产发布流程:--config.test_and_exit 先校验 → 替换配置 → 自动重载生效 → 观察 Logstash 日志确认 reload 成功。

常见问题(FAQ)

Q:reload 期间数据会丢吗? 不会——新管道就绪前旧管道继续运行(需要持久化队列配合更稳)。

Q:只想手动触发重载? 不发参数的情况下给进程发 SIGHUP 信号(旧版本支持)。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台