了解logstash重试策略

vin*_* hy 5 elasticsearch logstash

我有 kibana 和 elasticsearch 实例在机器上运行。Logstash 和 filebeat 正在其他机器上运行。

流程工作得很好。我有一个疑问,我需要理解这一点。我让elasticsearch停止运行,并让logstash将一些日志泵送到elasticsearch。由于elasticsearch 已关闭,我希望数据会丢失。但是当我启动elasticsearch服务时,Kibana能够显示elasticsearch关闭时发送的日志。

当我在网上搜索时,我知道 Logstash 在 Elasticsearch 中重试连接已关闭。

请问如何设置这个参数

Val*_*Val 5

原因是elasticsearch输出使用两个参数实现指数退避:

  • retry_initial_interval
  • retry_max_interval

如果批量调用失败,Logstash 将等待几retry_initial_interval秒钟并重试。如果仍然失败,则会等待2 * retry_initial_interval并重试。依此类推,直到等待时间达到retry_max_interval,此时它将retry_max_interval无限期地每秒尝试一次。

请注意,此重试策略仅在 ES 不可达时有效。如果存在其他错误,例如映射错误 (HTTP 400) 或冲突 (HTTP 409),则不会重试批量调用。