0

在我的场景中,我使用 fluent-bit(版本 1.6.1)过滤器来识别特定的日志模式和标记(from.solr.out)。

[FILTER]
    Name          rewrite_tag
    Match         test_tag
    Rule          $msg "^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.*$"  from.solr.out false
    Emitter_Name  re_emitted

然后我修改记录以添加如下所示的字段

[FILTER]
    Name record_modifier
    Match from.solr.out
    Record aid 53

现在我需要为我在下面的代码片段中尝试过的修改后的记录提供一个新标签(format.logging),但它不起作用。

[FILTER]
    Name          rewrite_tag
    Match         from.solr.out
    Rule          $from.solr.out "^.*$"  format.logging false
    Emitter_Name  re_emitted_indexing
  • 这种方法有什么问题?

  • 有没有更好的方法/过滤器来完成这项任务?

4

1 回答 1

0

弄清楚如何得到我期望的结果。

...
[2020/10/22 12:49:07] [ info] [sp] stream processor started
[0] format.logging: [1603351147.631883694, {"msg"=>"2020-10-16 09:29:03.968 WARN  ...

我认为标签$msg附带的原始消息在添加新标签(from.solr.out)后消失了。因为在我的第二个过滤器中,我将记录添加到第二个标签(from.solr.out)而不是初始标签($msg)。

然后在最后一个过滤器中,我尝试使用第二个标签(from.solr.out )创建一个新标签( format.logging 。这就是事情出错的地方。我没有使用第二个标签,而是尝试在这里使用第一个标签($msg)。然后我得到了我需要的所有更改作为输出。

我期待的变化是;

  • 过滤输入消息以识别一些日志
  • 向已识别的消息添加字段
  • 标记修改后的消息

我所做的最后改变是

[FILTER]
    Name          rewrite_tag
    Match         from.solr.out
    Rule          $msg "^*$"  format.logging false
    Emitter_Name  re_emitted_indexing
于 2020-10-22T08:07:38.750 回答