繁体   English   中英

Fluentbit Kubernetes - 如何从现有日志中提取字段

[英]Fluentbit Kubernetes - How to extract fields from existing logs

我已经在我的 Kubernetes 集群上使用 Fluent-bit 配置了 EFK 堆栈。 我可以在 Kibana 中看到日志。

我也部署了 nginx pod,我也可以在 Kibana 中看到这个 nginx pod 的日志。 但是所有日志数据都发送到单个字段“日志”,如下所示。

在此处输入图片说明

如何将每个字段提取到一个单独的字段中。 在这个问题中已经有一个针对 fluentd 的解决方案。 Kibana - 如何从现有的 Kubernetes 日志中提取字段

但是我怎样才能用 fluent-bit 达到同样的效果呢?

我通过在 Kubernetes 的默认 FILTER 部分下再添加一个 FILTER 部分来尝试以下方法,但没有奏效。

 [FILTER] Name parser Match kube.* Key_name log Parser nginx

从这个( https://github.com/fluent/fluent-bit/issues/723 ),我可以看到 fluent-bit 没有 grok 支持。

在我们的 Kubernetes 过滤器官方文档中,我们有一个示例,说明如何让您的 Pod 基于注释为您的数据建议解析器:

https://docs.fluentbit.io/manual/filter/kubernetes

看看这个配置图:

https://github.com/fluent/fluent-bit-kubernetes-logging/blob/master/output/elasticsearch/fluent-bit-configmap.yaml

nginx 解析器应该在那里:

[PARSER]
        Name   nginx
        Format regex
        Regex ^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
        Time_Key time
        Time_Format %d/%b/%Y:%H:%M:%S %z

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM