You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LogStash因无法连接ElasticSearch输出端崩溃,求重连等待方案

解决LogStash在ElasticSearch断开后崩溃的问题

我之前也碰到过完全一样的情况!多管道模式下的LogStash默认配置确实会在ES连接失败且重试耗尽后直接崩溃,不过通过调整elasticsearch输出插件的几个关键参数,就能让它持续等待并重连,直到ES恢复。

核心是要让LogStash无限重试连接,并且合理控制重试间隔,避免资源浪费。你需要在每个管道的elasticsearch输出块中添加以下配置:

  • max_retries => -1:将重试次数设置为无限,默认情况下这个值是有限的(比如3次),一旦耗尽就会触发致命错误导致进程崩溃。设为-1后,LogStash会一直尝试重连,直到ES恢复。
  • retry_initial_interval => 3:初始的重试间隔(单位:秒),第一次失败后3秒重试。
  • retry_max_interval => 60:最大重试间隔,避免短时间内频繁重试耗尽系统资源,这里设置为60秒,之后每次重试都会间隔60秒。
  • resurrect_delay => 5:当ES节点被标记为不可用时,每隔5秒尝试重新检测该节点是否恢复可用。

给你一个完整的输出配置示例:

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "your-log-index-%{+YYYY.MM.dd}"
    # 容错重连核心配置
    max_retries => -1
    retry_initial_interval => 3
    retry_max_interval => 60
    resurrect_delay => 5
    # 如果你的ES启用了身份验证,添加下面两行
    # user => "elastic"
    # password => "your-es-password"
  }
}

注意:因为你用的是多管道模式,每个管道的elasticsearch输出都需要单独添加这些配置,每个管道的输出是独立管理的,只改一个管道的配置没用哦。

我当时这么配置后,就算把ES停掉几个小时,LogStash也会稳稳运行着,等我重启ES后,它会自动把队列里攒的事件全部发送过去,完全不会崩溃。

内容的提问来源于stack exchange,提问作者Gourmax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:28:15