0
logstashフィルタープラグインを使用して処理しているファイルに複数のログメッセージがあります。その後、フィルタリングされたログがelasticsearchに送信されます。ドロップフィルターが動作していないlogstash
addIDと呼ばれる1つのフィールドがログメッセージにあります。特定のaddIDが存在するすべてのログメッセージを削除します。これらの特定のaddIDSはID.ymlファイルに存在します。
シナリオ:ログメッセージのaddIDがID.ymlファイル内のaddIDのいずれかと一致する場合、そのログメッセージは削除する必要があります。
これを達成するのに手伝ってもらえますか?
以下は私の設定ファイルです。
input {
file {
path => "/Users/jshaw/logs/access_logs.logs
ignore_older => 0
}
}
filter {
grok {
patterns_dir => ["/Users/jshaw/patterns"]
match => ["message", "%{TIMESTAMP:Timestamp}+{IP:ClientIP}+{URI:Uri}"]
}
kv{
field_split => "&?"
include_keys => [ "addID" ]
allow_duplicate_values => "false"
}
if [addID] in "/Users/jshaw/addID.yml" {
drop{}
}
}
output {
elasticsearch{
hosts => ["localhost:9200"]
}
}
感謝。 ルビーフィルタを使用すると、特定のaddIDを持つログメッセージを削除できますか? – User24
@ User24はい。 Cf [documentation](https://www.elastic.co/guide/en/logstash/current/plugins-filters-ruby.html) – baudsp