当模式在 fluentd 中不匹配时如何处理

how to handle when pattern doesnt match in fluentd

我是流利的新手,并试图用我有限的知识来解析日志。我们有不同的应用程序,它们以不同的格式写入日志。我写了一个源代码来解析日志。因为我无法控制维护日志标准。我将无法更改它们。

但是我不确定 pattern doesn't match 时如何处理。基本上,如果模式不匹配,我想按原样发送日志。

我尝试查找文档,但找不到太多 提前致谢。 这是我的来源

<source>
@type tail
path /Users/amjad/testfluent/*.log
read_from_head true
format multiline
format_firstline /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}/
format1 /(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3}) +(?<log_level>[aA-zZ]*) \[(?<service_name>.+),(?<trace_id>.*),(?<span_id>.*),(?<zipkin>[aA-zZ]*)\] (?<message>(.|\s)*)/
tag kubernetes.apps*
time_format %Y-%m-%dT%H:%M:%S.%NZ
</source>

source 指令只会跟踪日志文件并尝试生成需要在之后解析和处理的日志事件。由于您使用的是多行格式,因此源会将与格式匹配的行连接成一个事件,否则,它将为每一行生成一个日志事件。稍后你可以匹配所有这些事件并像这样处理它们

<match kubernetes.apps*>
  @type xx
<macth>
<match **.**>
  @type xx
<macth>