Fluentbit tial->es 配置解析

[SERVICE]
    Flush         1 #buffer里的数据每隔1秒写到output插件里,这里写到ES里。
    Log_Level     info #fluent-bit的日志级别
    Daemon        off
    Parsers_File  parsers.conf #指向了另外一个配置文件,里面配置所有的parser。
    HTTP_Server   On
    HTTP_Listen   0.0.0.0
    HTTP_Port     2020

[INPUT]
    Name              tail #指定了input插件的类型,这里是tail类型
    Tag              {{$Host}}_{{$ESIndex}}_{{.ContainerName}}_{{$i}}给采集的日志打个标签,后面filter和output根据这个标签选择数据源
    Path              /var/log/pods/${POD_UID}/{{.ContainerName}}/*.log
    Path_Key          filename
    Parser            docker
    DB                /var/log/pods/${POD_UID}/{{.ContainerName}}/flb_std.db#记录哪个文件采集到哪一行
    DB.Sync           Full #internal SQLite engine用哪种方法同步数据到磁盘,full为安全优先
    #Key               log
    Mem_Buf_Limit     5MB #一旦buffer里的数据超过Mem_buf_limit,tail就会暂停采集,直到buffer数据被flush到output。
    Skip_Long_Lines   On #跳过长度大于Buffer_Max_Size的行
    Buffer_Chunk_Size 32k #tail命令的buffer初始大小,具体作用和对性能的影响还需进一步研究
    Buffer_Max_Size   32k #tail命令的buffer最大值,具体作用和对性能的影响还需进一步研究
    Refresh_Interval  10 #定时扫描磁盘上的新文件的间隔。
    Rotate_Wait        5 #文件rotate后的等待一段时间后再继续监控这个文件,以防flush一些pending data, 具体作用和对性能的影响还需进一步研究 
    Ignore_Older       10d #忽略近十天来未更改的文件

[FILTER]
    Name                modify #插件的类型
    Match               * #匹配到任何数据源
    Add node_name ${NODE_NAME}
    Add node_ip ${NODE_IP}
    Add pod_name ${POD_NAME}

[OUTPUT]
    Name   es #插件的类型
    Match  {{.Host}}_{{.ESIndex}}* #匹配到tag为{{.Host}}_{{.ESIndex}}*的数据源
    Host   {{.HostName}} #es的hostname 可以是域名和ip
    Port   {{.Port}} #es的端口
    Index {{.ESIndex}} 
    HTTP_User {{.UserName}}
    HTTP_Passwd {{.Password}}
    Pipeline #不要用
    Logstash_Format  On #是否采用类似logstash的index,可以根据时间设置index名字
    Logstash_Prefix logstash #索引名称的前缀
    Logstash_DateFormat %Y.%m.%d #名称后缀格式
    Time_Key  tail-time #Logstash_Format enabled的时候,每条记录会新产生一个时间戳
    Time_Key_Format %Y-%m-%dT%H:%M:%S #新时间戳的格式
    Generate_ID  On #对记录去重,可能有性能消耗。
    Trace_Output Off #打印elasticsearch API calls 调试的时候用。
    Logstash_Prefix_Key ttt #
    Retry_Limit     5 #传输失败后重试次数,默认为2,设置为False时,无限次重试

parsers.conf 

[PARSER]
    Name        docker
    Format      json
    Time_Key    time
    Time_Format %Y-%m-%dT%H:%M:%S.%L %z
    Decode_Field escaped_utf8 log
[PARSER]
    Name        json_parse
    Format      json
    Time_Key    time
    Time_Keep   On
    Time_Format %Y-%m-%dT%H:%M:%S

关于ES中的时间理解:

默认日志入ES时会加上@timestamp字段,时间取值为日志入ES的时间,如果在PARSER中对日志中的时间字段(如time)进行解析,并且解析正确。则将解析正确的时间值赋给@timestamp字段。显现象如下:

Fluentbit tial->es 配置解析_第1张图片

Fluentbit tial->es 配置解析_第2张图片

你可能感兴趣的:(ELK)