我如何使用fluentd从kubernetes日志中提取不同的字段,例如严重性,时间,流,消息。我有来自Kubernetes的多种日志记录。如何使用流利的方法从不同类型的模式中提取字段
示例错误日志-{"log":"2019-09-06 21:57:50.864 DEBUG 1 --- [ntainer#2-0-C-1] class : error message \"\n","stream":"stdout","time":"2019-09-06T21:57:50.864955417Z"}
我正在使用的正则表达式-^(?:{"log":"(?<time>\d+(?:-\d+){2}\s+\d+(?::\d+){2}\.\d+)\s"*(?<level>\S+) (?<pid>\d+) --- \[(?<thread>[\s\S]*?)\] (?<class>\S+)\s*:\s* (?<message>[\s\S]*?)(?=\g<time>|\Z).*)
使用正则表达式时出现找不到模式错误。以下是我的流利配置
<source>
type tail
path /var/log/containers/*.log
pos_file /var/log/es-containers.log.pos
tag kubernetes.*
format /^(?:{"log":"(?<time>\d+(?:-\d+){2}\s+\d+(?::\d+){2}\.\d+)\s"*(?<level>\S+) (?<pid>\d+) --- \[(?<thread>[\s\S]*?)\] (?<class>\S+)\s*:\s* (?<message>[\s\S]*?)(?=\g<time>|\Z).*)/
time_format %Y-%m-%dT%H:%M:%S.%NZ
read_from_head false
</source>
答案 0 :(得分:0)
我已经经历过了。我发现使用正则表达式非常不健康:)。
这就是我解决的方法。
Property: app.beans[0]
Value:
Origin: class path resource [application-local.yaml]:86:6
Reason: No converter found capable of converting from type [java.lang.String] to type [com.myprojects.BeanInterface]