我在k8s中使用fluent-bit v1.5作为日志转发器进行了相当简单的Apache部署。我的设置几乎与以下回购中的设置相同。我正在运行AWS EKS,并将日志输出到AWS ElasticSearch Service。
https://github.com/fluent/fluent-bit-kubernetes-logging
ConfigMap在这里:https://github.com/fluent/fluent-bit-kubernetes-logging/blob/master/output/elasticsearch/fluent-bit-configmap.yaml
Apache访问(-> / dev / stdout)和错误(-> / dev / stderr)日志行都位于节点上的同一容器日志文件中。 我遇到的问题是流利的位似乎无法自动检测要使用的解析器,我不确定是否应该使用,我们只能在部署的注释部分中指定一个解析器,我已经指定了apache 。 因此,最后,不会解析写入同一文件但来自stderr的错误日志行。 假设fluentd可以处理此错误,我应该将日志从fluent-bit发送到fluentd来处理错误文件,还是应该以某种方式仅将错误行抽回到fluent-bit中进行解析?
我想念什么吗?
谢谢!
答案 0 :(得分:1)
对于FluentBit而言没有看到,但是对于Fluentd而言却如此:
注意format none
作为最后一个选项意味着保持日志行不变,例如纯文本,如果没有其他作用。
您还可以将FluentBit用作纯日志收集器,然后使用Fluentd进行单独的Deployment,以从FluentBit接收流,解析并完成所有输出。在这种情况下,请在FluentBit输出中使用type forward
,在Fluentd中使用源@type forward
。文件:https://docs.fluentbit.io/manual/pipeline/outputs/forward
答案 1 :(得分:1)
通过使用FluentBit FILTER和“解析器”插件(名称),我能够将第二个(第三个)解析器应用于日志,如下所示。
此处记录:https://docs.fluentbit.io/manual/pipeline/filters/parser
[FILTER]
Name parser
Match kube.*
Parser apache_error_custom
Parser apache_error
Preserve_Key On
Reserve_Data On
Key_Name log