description: 本页面描述 Fluent Bit 的主配置文件

配置文件

配置 Fluent Bit 的方法之一是使用主配置文件。Fluent Bit 允许使用一个配置文件,该配置文件可以在全局范围内工作,并按照之前定义的格式与模式使用。

主配置文件支持 4 种类型的配置段:

  • Service
  • Input
  • Filter
  • Output

此外,还可以使用函数将主配置文件拆分为多个文件,以包含外部文件:

  • Include File

Service

Service 配置段定义了服务的全局属性,下表中介绍了此版本可用的键:

描述 中文 默认值
Flush Set the flush time in seconds.nanoseconds. The engine loop uses a Flush timeout to define when is required to flush the records ingested by input plugins through the defined output plugins. seconds.nanoseconds 格式设置刷新时间。设置引擎将由输入插件进入的记录何时由输出插件输出 5
Daemon Boolean value to set if Fluent Bit should run as a Daemon (background) or not. Allowed values are: yes, no, on and off. note: If you are using a Systemd based unit as the one we provide in our packages, do not turn on this option. Fluent Bit 是否应该作为守护(后台)进程运行 Off
Log_File Absolute path for an optional log file. By default all logs are redirected to the standard output interface (stdout). 可选日志文件的绝对路径。默认情况下,所有日志都输出到标准输出(stdout)
Log_Level Set the logging verbosity level. Allowed values are: error, warning, info, debug and trace. Values are accumulative, e.g: if ‘debug’ is set, it will include error, warning, info and debug. Note that trace mode is only available if Fluent Bit was built with the WITH_TRACE option enabled. 设置日志级别。可选值为: error, warning, info, debug and trace。注意,只有在构建时启用 WITH_TRACE, trace 级别才可用 info
Parsers_File Path for a parsers configuration file. Multiple Parsers_File entries can be defined within the section. parsers 配置文件路径。配置段中可配置多个 Parsers_File 配置项
Plugins_File Path for a plugins configuration file. A plugins configuration file allows to define paths for external plugins, for an example see here. plugins 配置文件路径。plugins 配置文件中可定义外部插件的路径。参见示例
Streams_File Path for the Stream Processor configuration file. To learn more about Stream Processing configuration go here. 流式处理器配置文件路径。有关流式处理配置,参见这里
HTTP_Server Enable built-in HTTP Server 是否启用内置 HTTP 服务 Off
HTTP_Listen Set listening interface for HTTP Server when it’s enabled HTTP 服务启用时,监听地址 0.0.0.0
HTTP_Port Set TCP Port for the HTTP Server HTTP 服务的 TCP 端口 2020
Coro_Stack_Size Set the coroutines stack size in bytes. The value must be greater than the page size of the running system. Don’t set too small value (say 4096), or coroutine threads can overrun the stack buffer. Do not change the default value of this parameter unless you know what you are doing. 设置协程栈大小(单位:字节)。该值必须大于正在运行的系统页面大小。不要设置太小的值(如 4096),否则协程线程可能会堆栈缓冲区溢出。除非您知道您自己在做什么,否则不要修改此参数默认值 24576

如下是一个 SERVICE 配置段:

  1. [SERVICE]
  2. Flush 5
  3. Daemon off
  4. Log_Level debug

Input

INPUT 配置段定义数据源(与输入插件相关联),我们将描述 INPUT 配置段的基本配置。请注意,每个输入插件都可以添加自己的配置项:

描述
Name 输入插件名称.
Tag 与该插件产生的所有记录关联的标签名称

配置项 Name 是必需的,它告知 Fluent Bit 应加载哪个输入插件。配置项 Tagforward 输入插件(因为它提供动态标签)以外其它输入插件都是必需的:

示例

如下是 INPUT 配置段的一个示例:

  1. [INPUT]
  2. Name cpu
  3. Tag my_cpu

Filter

FILTER 配置段定义一个过滤器(与过滤插件相关联),我们将描述 FILTER 配置段的基本配置。请注意,每个过滤插件都可以添加自己的配置项:

描述
Name 过滤插件名称
Match 与传入记录的标签匹配的模式。它区分大小写并支持星号(*)作为通配符
Match_Regex 与传入记录的标签匹配的正则表达式。如果要使用完整的正则表达式语法,请使用此选项

配置项 Name 是必需的,它告知 Fluent Bit 应加载哪个过滤插件。配置项 MatchMatch_Regex 对于所有插件都是必需的。如果两者都指定,则 Match_Regex 优先级更高。

示例

如下是 FILTER 配置段的一个示例:

  1. [FILTER]
  2. Name stdout
  3. Match *

Output

OUTPUT 配置段指定记录标签匹配后的目的地。该配置支持以下配置项:

描述
Name 输出插件名称
Match 与传入记录的标签匹配的模式。它区分大小写并支持星号(*)作为通配符
Match_Regex 与传入记录的标签匹配的正则表达式。如果要使用完整的正则表达式语法,请使用此选项

示例

以下是 OUTPUT 配置段的示例:

  1. [OUTPUT]
  2. Name stdout
  3. Match my*cpu

示例: 收集 CPU 指标

以下配置文件示例演示了如何收集 CPU 指标并每五秒钟将结果刷新到标准输出:

  1. [SERVICE]
  2. Flush 5
  3. Daemon off
  4. Log_Level debug
  5. [INPUT]
  6. Name cpu
  7. Tag my_cpu
  8. [OUTPUT]
  9. Name stdout
  10. Match my*cpu

Include File

为避免复杂的长配置文件,最好将特定部分拆分为不同的文件,然后从主文件中调用(include)它们。

从 Fluent Bit 0.12 开始,添加了新的配置命令 @INCLUDE,可以通过以下方式使用:

  1. @INCLUDE somefile.conf

配置读取器将尝试打开文件 somefile.conf,如果找不到,它将假定它是基于主配置文件路径的相对路径,如:

  • 主配置文件路径: /tmp/main.conf
  • 引入文件: somefile.conf
  • Fluent Bit 将尝试打开 somefile.conf,如果失败,则尝试打开 /tmp/somefile.conf.

找到文件后,其内容将替换 @INCLUDE somefile.conf 行。这是一个简单的文本包含。您仍然必须遵循前面的格式与模式中的规范。例如,您不能定义多个 [SERVICE] 配置段。

@INCLUDE 命令仅在配置文件的起始位置起作用,不能在配置段内部使用。

支持通配符(*)包含多个文件,例如:

  1. @INCLUDE input_*.conf