2017-05-17 6 views
1

私はインターネット上で変数をlogstashに入れて、パターンに対応する用語があれば値を使用または変更する方法を探しています。私は私のソースを解析するために、このGROKコードを使用していlogstashの前の値でフィールドを変更することは可能ですか?

2017-04-12 15:49:57,641|OK|file1|98||| 
    2017-04-12 15:49:58,929|OK|file2|1387|null|msg_fils| 
    2017-04-12 15:49:58,931|OK|file3|2|msg_pere|msg_fils| 
    2017-04-12 15:50:17,666|OK|file1|25||| 
    2017-04-12 15:50:17,929|OK|file2|1387|null|msg_fils| 

ここで、私のデータソースの例があります。

grok { 
    match => {"message" => '%{TIMESTAMP_ISO8601:msgdates:date}\|%{WORD:verb}\|%{DATA:component}\|%{NUMBER:temps:int}\|%{DATA:msg_pere}\|%{DATA:msg_fils}\|'} 
} 

しかし、実際に私がFILE1

それが可能だかどうかは教えてもらえますが含まれている行の前の値によって、最初のフィールドを変更したいですか?

ありがとうございました

答えて

0

私は私の問題の解決策を見つけました。私はあなたに私の問題の解決策を教えています。 私はをlogstashフィルタ-暗記という名前のプラグインを使用して、それがコマンドでインストールすることができますよ。

logstash-プラグイン

をlogstashフィルタ-暗記インストールだから私のフィルタはこのようなものです:

grok { 
    match => {"message" => '%{TIMESTAMP_ISO8601:msgdates:date}\|%{WORD:verb}\|%{DATA:component}\|%{NUMBER:temps:int}\|%{DATA:msg_pere}\|%{DATA:msg_fils}\|'} 
} 
if [component] =~ "file1" { 
    mutate { 
     add_field => [ "msg_id", "%{msgdates}" ] 
    } 
    memorize { 
     fields => [ "msg_id" ] 
     default => { "msg_id" => "NOTFOUND" } 
    }   } 
memorize { 
    fields => [ "msg_id9" ] 
} 

他の人にも役立つことを願っています。

関連する問題