Używam Grok & Logstash do wysyłania dzienników dostępu z Nginx do wyszukiwania elastycznego. Daję Logstashowi wszystkie moje logi dostępu (z dziką kartą, działa dobrze) i chciałbym uzyskać nazwę pliku (, część jego, dokładnie) i użyć go jako pola.Użyj grok, aby dodać nazwę pliku dziennika jako pole logstash
Mój config wygląda następująco:
input {
file {
path => "/var/log/nginx/*.access.log"
type => "nginx_access"
}
}
filter {
if [type] == "nginx_access" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" }
add_field => { "app" => "%{app}" }
}
}
}
output{
# whatever
}
Ale to nie wydaje się działać: pole app
dodaje, ale ma wartość %{app}
(nie zastąpiony).
Próbowałem różnych rzeczy, ale bezskutecznie. Może brakuje mi czegoś ... Jakieś pomysły?
dziękuję
możliwe duplikat [Logstash: jak dodać nazwę pliku jako pole] (http://stackoverflow.com/questions/22916200/logstash-how-to-add-file-name-as-a -field) – OhadR