logstash
にelasticsearch output
を使用すると、より新しいログメッセージの場合は@timestamp
のみを更新できますか?Logstash - > Elasticsearch:新しい文書の場合は@timestampを更新し、古い場合は破棄します。
ドキュメント全体のインデックスを再作成したり、同じログメッセージのインデックスを2度作成したりすることは望ましくありません。
さらに、@timestamp
が古い場合は、現在のバージョンを更新/置き換えてはいけません。
現在は、私はこれをやっている:
filter {
if ("cloned" in [tags]) {
fingerprint {
add_tag => [ "lastlogin" ]
key => "lastlogin"
method => "SHA1"
}
}
}
output {
if ("cloned" in [tags]) {
elasticsearch {
action => "update"
doc_as_upsert => true
document_id => "%{fingerprint}"
index => "lastlogin-%{+YYYY.MM}"
sniffing => true
template_overwrite => true
}
}
}
それはHow to deduplicate documents while indexing into elasticsearch from logstashに似ていますが、私はいつもmessage
フィールドを更新する必要はありません。 @timestamp
フィールドが最新の場合に限ります。