Analizando JSON en Logstash

Tengo algunos archivos de registro generados porLog4J2. Estoy enviando los registros a un archivo .json usando JSONLayout en el archivo de configuración log4j2.xml. Mi JSONLayout se define así:

<JSONLayout complete="false"></JSONLayout>

A medida que los registros se ingresan en el archivo de registro en mi máquina, se agregan, uno tras otro, y se ven así en logs.log:

  {
    "logger":"com.mycompany.myLogger",
    "timestamp":"1396792374326",
    "level":"ERROR",
    "thread":"pool-2-thread-2",
    "message":"System: unable to perform action",
    "throwable":"java.lang.NullPointerException\\n\tat com.myCompany.MyClass $.java:432)\\n\tat java.lang.Thread.run(Thread.java:744)\\n"
  },

Estoy tratando de estructurar este JSON para poder consultarlo desde ElasticSearch. Durante ese proceso, intento agregar un campo personalizado a TODOS los registros. Para hacer eso, estoy usando lo siguiente:

input {
  file {
    type => "json"
    path => "/var/logs/myApp/logs.log"
  }
}
filter {
  json {
    add_tag => [ "HardcodedTagName"]
    source => "message"
  }
}
output {
  elasticsearch {
    protocol => "http"
    codec => "json"
    host => "[myServerAddress]"
    port => "9200"
  }
}

Curiosamente, mi etiqueta personalizada NUNCA parece agregarse. Al mismo tiempo, me gustaría dividir mi JSON en campos que pueda consultar en ElasticSearch. Las cosas que me gustaría consultar están claramente disponibles. Son:

nivelmensajemarca de tiempo

Sin embargo, parece que no puedo obtener esta información. Cuando veo los registros JSON en Kibana, solo veo algo como esto:

{
  "_index": "logstash-2014.04.07",
  "_type": "json",
  "_id": "tG-s6-5pSnq5HZwLhM6Dxg",
  "_score": null,
  "_source": {
    "message": "    \"message\":\"System: unable to perform action\"\r",
    "@version": "1",
    "@timestamp": "2014-04-07T18:01:38.739Z",
    "type": "json",
    "host": "ip-MyipAddress",
    "path": "/var/logs/myApp/logs.log"
  },
  "sort": [
    1396893698739,
    1396893698739
  ]
}

Lo que más me sorprende es que el nivel de registro ni siquiera está allí. Tampoco lo es la información del hilo. Me sorprendió no poder encontrar una publicación de blog de un ejemplo de Log4J que usa un filtro. Cualquier ayuda es sinceramente apreciada!

Respuestas a la pregunta(1)

Su respuesta a la pregunta