tutorial software español elastic aplicaciones apache date logstash

apache - software - logstash tutorial español



El filtro de fecha de Logstash no se actualiza con la marca de hora con la marca de hora de Apache (1)

Estoy intentando volver a llenar algunos datos de registro de acceso de Apache anteriores con logstash, por lo tanto, necesito que el evento @timestamp se establezca en la fecha que aparece en el mensaje de registro. Esta es mi configuración de logstash actual:

input { tcp { type => "access_log" port => 9293 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { # Try to pull the timestamp from the ''timestamp'' field (parsed above with # grok). The apache time format looks like: "18/Aug/2011:05:44:34 -0700" locale => "en" timezone => "America/New_York" match => { "timestamp" => "dd/MMM/yyyy:HH:mm:ss Z" } add_tag => [ "tsmatch" ] } } output { stdout { codec => rubydebug } }

Sin embargo, el filtro de fecha no parece actualizar el evento @timestamp, a pesar de que la marca de tiempo de Apache se detecta correctamente y la expresión regular debe coincidir. Los datos de salida se ven así:

{ "message" => "56.116.21.231 - - [20/Nov/2013:22:47:08 -0500] /"GET /xxxx/1.305/xxxx/xxxx.zip HTTP/1.1/" 200 33002333 /"-/" /"xxxxx/3.0.3 CFNetwork/609.1.4 Darwin/13.0.0/"", "@timestamp" => "2013-12-01T12:54:27.920Z", "@version" => "1", "type" => "access_log", "host" => "0:0:0:0:0:0:0:1%0:51045", "clientip" => "56.116.21.231", "ident" => "-", "auth" => "-", "timestamp" => "20/Nov/2013:22:47:08 -0500", "verb" => "GET", "request" => "/xxxx/1.305/xxxx/xxxx.zip", "httpversion" => "1.1", "response" => "200", "bytes" => "33002333", "referrer" => "/"-/"", "agent" => "/"xxxxx/3.0.3 CFNetwork/609.1.4 Darwin/13.0.0/"", "tags" => [ [0] "tsmatch" ] }

¿Alguna idea sobre lo que podría estar mal?

Estoy usando el logstash-1.2.2 flatjar.


Ok, encontré el problema, estaba usando la sintaxis incorrecta en la operación de coincidencia:

match => ["timestamp", "dd / MMM / aaaa: HH: mm: ss Z"]

NO

match => {"timestamp" => "dd / MMM / aaaa: HH: mm: ss Z"}