2014-05-21 20 views
9

Sto utilizzando Grok & Logstash per inviare registri di accesso da Nginx a Ricerca elastica. Sto dando a Logstash tutti i miei registri di accesso (con un jolly, funziona bene) e vorrei ottenere il nome del file (parte di esso, per essere esatti) e usarlo come campo.Utilizzare grok per aggiungere il nome file di registro come campo nel logstash

mio config è la seguente:

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 
} 

Ma non sembra funzionare: il campo app viene aggiunto, ma ha un valore di %{app} (non sostituito).

Ho provato diverse cose ma inutilmente. Potrei perdere qualcosa ... Qualche idea?

Grazie mille

+0

possibile duplicato di [Logstash: come aggiungere il nome del file come un campo] (http://stackoverflow.com/questions/22916200/logstash-how-to-add-file-name-as-a -field) – OhadR

risposta

13

Ok, trovato. grok interrompe la corrispondenza per impostazione predefinita. Quindi la prima partita è buona, salta la seconda.

ho risolto così:

filter { 
    if [type] == "nginx_access" { 
    grok { 
     match => { "message" => "%{COMBINEDAPACHELOG}" } 
     match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" } 
     break_on_match => false 
    } 
    } 
} 
+2

Mi limito a notare che il campo utilizzato per i messaggi che sono stati inoltrati con logstash-forwarder (alias lumberjack) non è 'path' ma' file'. Tutto il resto funziona perfettamente. – GhostLyrics

0

ho trovato più desiderabile utilizzare 2 blocchi Grok se ci saranno linee unmatching nei file di registro.

filter { 
    if [type] == "nginx_access" { 
    grok { 
     match => { "path" => "%{GREEDYDATA}/%{GREEDYDATA:app}.access.log" } 
    } 
    grok { 
     match => { "message" => "%{COMBINEDAPACHELOG}" } 
    } 
    } 
} 
Problemi correlati