天天看点

fluent-bit之配置详解前言一、配置文件二、Service二、Input三、Filter四、Output五、示例六、可视化七、include file

fluent-bit之k8s日志采集

  • 前言
  • 一、配置文件
  • 二、Service
  • 二、Input
  • 三、Filter
  • 四、Output
  • 五、示例
    • Example: collecting CPU metrics
  • 六、可视化
  • 七、include file

前言

fluent-bit通过daemonset方式部署用来进行采集k8s日志是非常不错的选择。

官方文档地址:链接: link——https://docs.fluentbit.io/manual/

一、配置文件

配置fluent-bit的方法之一是使用主配置文件。fluent-bit允许使用一个在全局范围内工作的配置文件。

主配置文件包括以下四种配置部分:

  • Service
  • Input
  • Filter
  • Output

此外,还可以使用包含外部文件的功能将主配置文件拆成多个文件

  • Include File

接下来将分别进行各部分配置介绍

二、Service

Survive部分定义了服务的全局属性,从1.9版本开始包含的键见下表:

Key Description Default Value
flush 设置刷新时间,秒 5
grace 引擎循环退出的等待时间,秒 5
daemon 设置后台运行,可选值包括:yes,no,on,off;如果设置为systemd启动,请设置为off Off
dns.mode 异步DNS解析的主要传输层协议,可以在每一个插件的基础上覆盖 UDP
log_file 可选的日志文件存储绝对路径。默认情况下,所有日志都重定向到标准错误接口(stderr)
log_level 设置日志记录详细级别,包括:off,error,warn,info,debug,trace info
parsers_file 配置文件的路径,parsers可以在该部分定义多个parsers_file
plugins_file plugins配置文件的路径。允许定义外部插件的路径
streams_file
http_server Off
http_listen 0.0.0.0
http_port 2020
coro_stack_size 24576
scheduler.cap 2000
scheduler.base 5

以下是service部分的示例:

[SERVICE]
    Flush           5
    Daemon          off
    Log_Level       debug
           

二、Input

Input部分定义了输入源,这里只描述基本配置。每个输入都可以添加自己的key-value:

Key Description
Name 名称
Tag 定义的标签名

Name是必填项,用来加载fluent-bit对应的input插件。除了input中的forward 插件(动态标签),其他所有的插件类型都要定义Tag。

以下是Input部分的示例:

[INPUT]
    Name cpu
    Tag  my_cpu
           

三、Filter

Filter部分定义了一个过滤器(与过滤插件有关),这里将描述每个Filter部分的基本配置。每个Fileter都可以添加自己的key-value:

Key Description
Name 名称
Match 与input中定义的Tag进行匹配,区分大小写并可以使用*进行通配
Match_Regex 正则匹配

Name是必填项,用来加载fluent-bit对应的filter插件。所有的插件类型都要定义Match或者Match_Regex,如果都定义了,Match_Regex优先级跟高。

以下是Filter部分的示例:

[FILTER]
    Name  grep
    Match *
    Regex log aa
           

四、Output

Output部分定义了输出源,指定了匹配后的记录输出目的地。目前,fluent-bit最多可以路由256个Output插件。该配置支持以下值:

Key Description
Name 名称
Match 与input中定义的Tag进行匹配,区分大小写并可以使用*进行通配
Match_Regex 正则匹配

以下是Output部分的示例:

[OUTPUT]
    Name  stdout
    Match my*cpu
           

五、示例

Example: collecting CPU metrics

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

[SERVICE]
    Flush     5
    Daemon    off
    Log_Level debug

[INPUT]
    Name  cpu
    Tag   my_cpu

[OUTPUT]
    Name  stdout
    Match my*cpu
           

六、可视化

还可以在 https://cloud.calyptia.com 可视化INPUT、FILTER、OUTPUT配置。

fluent-bit之配置详解前言一、配置文件二、Service二、Input三、Filter四、Output五、示例六、可视化七、include file

七、include file

为了避免配置文件过长,最好将配置文件拆分到不同的配置文件中,通过在主配置文件中进行引用

如下:

@INCLUDE somefile.conf
           

配置路径为主配置文件的相对路径,例如:

  • 主配置文件路径: /tmp/main.conf
  • Included file: somefile.conf
  • Fluent-Bit会尝试打开 somefile.conf,如果失败会尝试/tmp/somefile.conf

include file支持通配符(*):