flutter-bit 上 grep 过滤器上的排除模式似乎不起作用

Sud*_*min 6 grep filter fluent-bit

我正在尝试从尾部输入中过滤出一些记录到流畅位。但这似乎不起作用。从日志文件中,我需要从所有具有键值“log”的记录中排除 1) 具有 1 个或多个数字后跟空格的记录 2) 行中任何位置具有值“Series”的记录 3) 具有值“transacttime”的记录' 线路上的任何地方。

它们可以是相同或不同的记录

[INPUT]
    Name         tail
    Path         /mnt/volume_nyc3_03/xenfix*.out
    Tag          genfix
    DB           /mnt/volume_nyc3_03/ggantel-gf.db


[FILTER]
    Name         grep
    Match        *
    Exclude      log ^[0-9]*\
    Exclude      log *Series*
    Exclude      log *transacttime*

[OUTPUT]
    Name         pulsar
    Match        *
    Host         somerandom-id.us-east-1.elb.amazonaws.com
    Port         6650
    Topic        persistent://public/default/genfixlogs

[OUTPUT]
    Name         stdout
    Match        genfix
Run Code Online (Sandbox Code Playgroud)

这不会从输出中排除任何记录,如下所示

{"log":"0 1"}
----- got message -----
{"log":"2019-09-17 21:25:08.636465 Series([], Name: transacttime, dtype: datetime64[ns])"}
----- got message -----
{"log":"2019-09-17 21:25:08.633038 Series([], Name: transacttime, dtype: datetime64[ns])"}
----- got message -----
{"log":"2019-09-17 21:25:08.680237 Series([], Name: transacttime, dtype: datetime64[ns])"}
----- got message -----
{"log":"2019-09-17 21:25:08.890903 Series([], Name: transacttime, dtype: datetime64[ns])"}
Run Code Online (Sandbox Code Playgroud)

小智 11

使用正则表达式时需要将 // 括起来。

下面是一个例子。

[FILTER]
    Name         grep
    Match        *
    Exclude      log /^[0-9]*/
    Exclude      log /.*Series.*/
    Exclude      log /.*transacttime.*/
Run Code Online (Sandbox Code Playgroud)

  • 我希望它会说它是文档 (4认同)