Logstash: Wie verwendet man Filter, um den Dateinamen abzugleichen, wenn man s3 verwendet
Ich bin neu im Logstash. Ich habe einige Protokolle in AWS S3 gespeichert und kann sie in den Logstash importieren. Meine Frage ist: Ist es möglich, den Grok-Filter zu verwenden, um Tags basierend auf den Dateinamen hinzuzufügen? Ich versuche zu benutzen:
grok {
match => {"path" => "%{GREEDYDATA}/%{GREEDYDATA:bitcoin}.err.log"}
add_tag => ["bitcoin_err"]
}
Das funktioniert nicht. Ich denke, der Grund dafür ist, dass "path" nur mit Dateieingaben arbeitet.
Hier ist die Struktur meiner S3-Buckets:
my_buckets
----A
----2014-07-02
----a.log
----b.log
----B
----2014-07-02
----a.log
----b.log
Ich benutze diese Eingaben conf:
s3 {
bucket => "my_buckets"
region => "us-west-1"
credentials => ["XXXXXX","XXXXXXX"]
}
Was ich möchte, ist, dass für alle Protokollmeldungen in:
"A / 2014-07-02 / a.log": Sie haben das Tag ["A", "a"].
"A / 2014-07-02 / b.log": Sie haben die Tags ["A", "b"].
"B / 2014-07-02 / a.log": Sie haben das Tag ["B", "a"].
"B / 2014-07-02 / b.log": Sie haben die Tags ["B", "b"].
Entschuldige mein Englisch....