Incapaz de crear un template

Hola,
Tras dos días intentando algo básico soy incapaz de que Filebeat y Kibana detecten los datos de mis Logs y separar los campos para poder utilizar las herramientas de visualización de Kibana, usando la versión 5.6.4 (la última de 32 bits).

Nuestros Logs ya están en JSON, con los siguientes campos
{"@timestamp":"2017-10-03T23:50:15.000Z","EMP":"BAL","INST":"PRI","TIPO":"T2","MSG":"FPS STATS COV : E=0/M=946/A=0 ","MOD":"AbdFPS","FNT":"fpsCbTimerVaciado.c","LIN":"83","ID1":0,"ID2":946,"ID3":0,"STR1":"","STR2":"","STR3":""}

Bien, en la carpeta Filebeat he creado un archivo prueba.template.json basado en el original en el que he metido, como he podido, la información de mis campos. Probablemente esté mal, pero creo que ni si quiera consigo cargarlo en Kibana...
prueba.template.json - https://pastebin.com/uXxrQD9i

Intento cargar este archivo como template en la configuración de filebeat
filebeat.yml - https://pastebin.com/jQb9R30d -

Arranco Filebeat, ElasticSearch y Kibana y detecto que si que se cargan los archivos de Log pero no el template. Vamos a Kibana, cargamos el index pattern"filebeat-*" y...
12
Aparecen los campos de apache que he borrado del prueba.template.json , y en ningún caso aparecen mis campos. Si me voy a discover veo que no se procesa todo lo que está dentro de message que es lo que verdaderamente me interesa

Hola @davidsoler95,

El template que estas agregando va a solo actuar por sobre un indice que siga el siguiente nombre:

  "template": "prueba-*"

Quiere decir, que los indices que contengan la información tiene que comenzar con prueba-*. En tu caso estas configurando el nombre del template, y la ruta desde filebeat, pero de todas maneras se siguen utilizando el nombre de indice filebeat-*. Para esto tambien tienes que configurar el nombre del indice con la siguiente configuración: https://www.elastic.co/guide/en/beats/filebeat/6.0/elasticsearch-output.html#_literal_index_literal.

output.elasticsearch:
...
...
...
  index: "prueba-%{+yyyy.MM.dd}"  

Ahi debería de utilizar el nombre prueba-* y crear un indice por dia, y que comience con ese nombre. Alli cuando se cree el indice nuevo entonces se debería de usar el template.

Por ulitmo, si tu informacion es JSON, al menos que le hagas parsing en Kibana se va a mostrar (y se va a indexar en Elasticsearch) como texto plano. Puedes probarlo esto. Si esto sucede lo que tienes que hacer es configurar los processors https://www.elastic.co/guide/en/beats/filebeat/6.0/decode-json-fields.html para que tomen el JSON y le hagan parsing.

Espero que esto te sea de ayuda.

Saludos!
--Gabriel

Hola, gracias por tu respuesta!

He añadido esa línea de código pero parece no afectar en nada... salvo que me esté liando.
Si ahora voy a kibana e intento poner el Index Pattern prueba...


Y sin embargo Filebeat...

Mientras consiga leer los datos me da igual el nombre.
Ahora procedo a intentar configurar los processors.... añado a filebeat.yml y sigue sin funcionar en Kibana donde no se procesan los campos de mi JSON

processors:
     - decode_json_fields:
         fields: ["EMP", "INST", "TIPO", "MSG", "MOD", "FNT", "LIN", "ID1", "ID2", "ID3", "STR1", "STR2", "STR3"]
         process_array: false
         max_depth: 1
         target: ""
         overwrite_keys: false

Hola nuevamente,

Gracias por la respuesta. Lo que puedes hacer es fijarte los indices que Elasticsearch esta creando. Ve a devtools de Kibana, y corre la siguiente linea:

GET _cat/indices

Ahi veras los indices que esta creando Filebeat. La informacion es guardada en indices, entonces si no esta disponible en Kibana, quiere decir que algo no se esta creando.

Tambien puedes agarrar un indice especifico por ejemplo del dia de hoy y hacer:

GET <index-name>/

Siendo index-name el nombre del indice para el dia de hoy. Alli veras los mappings (settings tambien) que deberian de ser los que configuras en el template. Si algo de esto no funciona entonces es que el template esta incorrecto, o que el indice aun no esta siendo creado con el nombre que tu quieres.

Saludos!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.