流利的位能否从一个文件解析多种类型的日志行?

时间:2020-10-08 19:54:15

标签: fluentd fluent-bit

我在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中进行解析?

我想念什么吗?

谢谢!

2 个答案:

答案 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
相关问题