我一直在尝试将 Fluent 位配置为 TCP 输出插件。据我观察,Fluent bit 在每次 JSON 日志刷新中都会启动和关闭与目标服务器的 TCP 连接。但是,我们希望有一个持续的连接并通过它流式传输日志。
最接近的配置选项是 TCP 输出插件的“Format json_stream”。应该 Fluentbit 建立并保持连接以通过 TCP 流式传输,还是每次刷新都需要一个新连接?
它是一个由 Fluentbit 容器组成的守护程序集,通过 localhost 与服务器容器进行通信。
非常感谢您对此的任何帮助!
"filter-kubernetes.conf" = <<-EOT
[FILTER]
Name kubernetes
Match app.*
Kube_URL https://kubernetes.default.svc:443
Merge_Log On
Merge_Log_Trim On
Keep_Log Off
K8S-Logging.Parser Off
[FILTER]
Name grep
Match app.*
Regex stream stdout
[FILTER]
Name record_modifier
Match app.*
Remove_key annotations
EOT
"fluent-bit.conf" = <<-EOT
[SERVICE]
Flush 1
Log_Level info
Daemon off
Parsers_File parsers.conf
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
@INCLUDE input-sources.conf
@INCLUDE filter-kubernetes.conf
@INCLUDE output-nats.conf
EOT
"input-sources.conf" = <<-EOT
[INPUT]
Name tail
Tag app.*
Path /var/log/containers/*.log
Parser docker
DB /var/log/flb_kube.db
Mem_Buf_Limit 5MB
Skip_Long_Lines On
Refresh_Interval 10
EOT
[OUTPUT]
Name tcp
Match *car*
Format json_stream
json_date_format iso8601
json_date_key timestamp
Host 127.0.0.1
Port 1111
EOT
"parsers.conf" = <<-EOT
[PARSER]
Name docker
Format json
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L
Time_Keep On
EOT
}
}