keikei12
(kei iwata)
November 15, 2019, 2:03am
1
logstashの仕様でご存じでしたら教えて下さい。
現在下記のような設定を入れています。
input {
beats { port => "5044" }
}
filter {
grok {
match => {"message" => '%{TIMESTAMP_ISO8601}\s*%{DATESTAMP_OTHER}%{LOGLEVEEL}:\s*%{GREEDYDATA:multilog}'
}
}
output {
elasticsearch {
hosts => [ 'ホストIP' ]
}
}
filebeatでtest.logの内容を取り込むのですが、このtest.logには様々なフォーマットのログが入ってきます。
matchで指定したメッセージと一致しない場合に、
elasticsearchには取り込まれないようにしたいです。
何か良い方法はあるでしょうか?
tsgkdt
(tsgkdt)
November 15, 2019, 3:06am
2
grokでマッチしなかった場合、初期値のままであれば_grokparsefailure
という値がtagsの中に入っているかと思います。
このことから、「tagsの中に_grokparsefailure
がなければ、outputのelasticsearchを実行する」という条件をつけられれば良いと考えれば、こんな書き方で実現できるかと思います。
output {
if "_grokparsefailure" not in [tags] {
elasticsearch { ... }
}
}
system
(system)
Closed
December 13, 2019, 3:06am
3
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.