【问题标题】:how to handle when pattern doesnt match in fluentdfluentd中模式不匹配时如何处理
【发布时间】:2020-02-20 13:33:19
【问题描述】:

我是 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>

【问题讨论】:

  • 您能详细说明一下吗?例如,哪个部分不匹配?或者你为什么不写一个匹配所有情况的模式?

标签: fluentd


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多