[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 #