[英]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 基于注释为您的数据建议解析器:
看看这个配置图:
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.