Verwenden Sie grok hinzufügen der log-Dateinamen als Feld in logstash

Ich bin mit Grok & Logstash zu senden access-logs von Nginx zu Elastic search. Ich gebe Logstash alle meine access-logs (mit einer wildcard funktioniert gut) und ich würde gerne den Dateinamen (ein Teil davon, um genau zu sein) und verwenden Sie es als ein Feld.

Meine config ist wie folgt :

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
}

Aber es scheint nicht zu funktionieren : die app Feld Hinzugefügt wird, hat aber einen Wert von %{app} (nicht ersetzt).

Ich verschiedene Sachen ausprobiert, aber ohne Erfolg. Ich kann etwas fehlt ... Irgendwelche Ideen ?

Vielen Dank

InformationsquelleAutor tchap | 2014-05-21
Schreibe einen Kommentar