4

テール入力から流暢なビットまでのいくつかのレコードを除外しようとしています。しかし、それはうまくいかないようです。ログ ファイルから、キー値が「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

以下に示すように、これは出力からレコードを除外しません

{"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])"}
4

1 に答える 1

6

正規表現を使用する場合は // で囲む必要があります。

以下は例です。

[FILTER]
    Name         grep
    Match        *
    Exclude      log /^[0-9]*/
    Exclude      log /.*Series.*/
    Exclude      log /.*transacttime.*/
于 2020-11-19T10:17:13.733 に答える