Ich habe mehrere Log-Nachrichten in einer Datei, die ich mit Logstash-Filter-Plugins verarbeitet. Dann werden die gefilterten Protokolle an elasticsearch gesendet.Drop-Filter funktioniert nicht Logstash
Es gibt ein Feld namens addID in einer Protokollnachricht. Ich möchte alle Protokollnachrichten löschen, für die eine bestimmte addID vorhanden ist. Diese speziellen addIDS sind in einer ID.yml-Datei vorhanden.
Szenario: Wenn die addID einer Protokollnachricht mit einer der in der ID.yml-Datei vorhandenen addIDs übereinstimmt, sollte diese Protokollnachricht gelöscht werden.
Kann mir jemand dabei helfen?
Unten ist meine Konfigurationsdatei.
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"]
}
}
Vielen Dank für die Antwort. Also, wenn ich Ruby-Filter dann wäre ich in der Lage, Log-Nachrichten, die eine bestimmte AddID haben ?? – User24
@ User24 Ja. Cf [Dokumentation] (https://www.elastic.co/guide/en/logstash/current/plugin-filters-ruby.html) – baudsp