我在Kubernetes集群上使用Fluent-bit配置了EFK堆栈。我可以在Kibana中看到日志。
我还部署了Nginx Pod,在Kibana中也可以看到此Nginx Pod的日志。但是,所有日志数据都会发送到单个字段“ log”,如下所示。
如何将每个字段提取到一个单独的字段中。在这个问题上已经有流利的解决方案。 Kibana - How to extract fields from existing Kubernetes logs
但是我如何才能使用流利的钻头呢?
我尝试通过在Kubernetes的默认FILTER部分下添加一个FILTER部分来尝试以下操作,但这没有用。
[FILTER] Name parser Match kube.* Key_name log Parser nginx
从这个(https://github.com/fluent/fluent-bit/issues/723),我可以看到流利的位不支持grok。
答案 0 :(得分:2)
在我们的Kubernetes过滤器的官方文档中,我们有一个示例,该示例如何使您的Pod根据注释为您的数据建议一个解析器:
答案 1 :(得分:0)
查看此配置图:
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