如何在流利位中覆盖 rewrite_tag

How to overwrite a rewrite_tag in 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

弄清楚如何获得我预期的结果。

...
[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 ).

然后在最后一个过滤器中,我试图通过使用第二个标签 ([=44) 创建一个新标签 (format.logging) =])。这就是问题所在。我没有使用第二个标签,而是尝试在此处使用第一个标签 ($msg)。然后我得到了我需要的所有更改作为输出。

我期待的变化是;

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

我所做的最后更改是

[FILTER]
    Name          rewrite_tag
    Match         from.solr.out
    Rule          $msg "^.*$"  format.logging false
    Emitter_Name  re_emitted_indexing