2015-05-14 21 views
5

Próbuję dostosować nazwę ścieżki, aby nie było już przypisanego końca znacznika czasu. Wprowadzam wiele różnych logów, więc niepraktycznym byłoby napisać filtr warunkowy dla każdego możliwego logu. Jeśli to możliwe, chciałbym przyciąć ostatnie dziewięć znaków wartości.Wartość pola przycinania lub usuń część wartości

Na przykład "random.log-20140827" stanie się "random.log".

Odpowiedz

3

Więc jeśli wiesz, że to zawsze będzie random.log-coś -

if [path] =~ /random.log/ { 
    mutate { 
    replace => ["path", "random.log"] 
    } 
} 

Jeśli chcesz się "naprawić" wszystko co ma datę w tym:

if [path] =~ /-\d\d\d\d\d\d\d\d/ { 
    grok { 
     match => [ "path", "^(?<pathPrefix>[^-]+)-" ] 
    } 
    mutate { 
     replace => ["path", "%{pathPrefix}"] 
     remove_field => "pathPrefix" 
    } 
} 

Of te dwie pierwsze będą mniej intensywne obliczeniowo.

Nie testowałem żadnego z nich, ale powinny one działać.

+0

Drugi był tym, czego potrzebowałem. Dziękuję bardzo Alcanzar. –

+0

Po stronie regexp, jak o coś jak/- \ d + $/lub/- \ d {8} $ /? –

5
mutate { 
    gsub => [ 
     "path", "-\d{8}$", "" 
    ] 
} 
Powiązane problemy