5

我已经在我的 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 支持。

4

2 回答 2

4

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

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

于 2018-11-02T15:21:39.740 回答
0

看看这个配置图:

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
于 2018-11-02T13:26:46.673 回答