调度与重试

Fluent Bit 包含一个引擎,可以协调从输入插件提取数据并调用 Scheduler(调度器) 决定何时通过一个或多个输出插件刷新数据。调度器以固定的时间刷新新数据,并进行调度重试。

当调用输出插件刷新某些数据时,在处理完该数据后,它以三种可能的返回状态通知引擎:

  • OK
  • Retry
  • Error

如果返回状态为 OK,意味着它能够成功处理和刷新数据,如果返回 Error 状态,则表示发生了不可恢复的错误,引擎不会尝试再次刷新该数据。如果请求 Retry引擎将要求调度器尝试刷新数据,调度器将决定刷新数据的等待时长。

配置重试

调度器提供了一个简单的配置项,称为 Retry_Limit,它可以在每个输出配置段中配置。此选项允许禁用重试或尝试重试 N 次后丢弃数据:

Value Description
Retry_Limit N 整数值,用于设置允许的最大重试次数。N 必须大于等于 1(默认为 2)
Retry_Limit False 不限制重试次数

示例

以下示例包含两个输出配置,其中 HTTP 输出插件可重试无限次,而 Elasticsearch 插件具有 5 次重试限制:

  1. [OUTPUT]
  2. Name http
  3. Host 192.168.5.6
  4. Port 8080
  5. Retry_Limit False
  6. [OUTPUT]
  7. Name es
  8. Host 192.168.5.20
  9. Port 9200
  10. Logstash_Format On
  11. Retry_Limit 5