Problemas de novato


(David Soler Balado) #1

Hola a todos, disculpad nuestra torpeza de novatos.

Estamos empezando a usar Kibana para visualizar el resultado de unos logs que tienen este formato
[PRI]2017-10-03 23:52:14 T2: FPS STATS COV : E=19/M=5923/A=0 (AbdFPS,fpsCbTimerVaciado.c,83)

Nos interesa sacar los datos de E=10/M=5923/A=0, entre otros. A continuación utilizando filebeat lo pasamos a Json
{"@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":19,"ID2":5923,"ID3":0,"STR1":"","STR2":"","STR3":""}

Y en ID1, ID2 E ID3 pondremos los tres datos que nos interesan. Lo introducimos en Kibana y sin problemas, salvo que los datos de ID1, ID2 e ID3 son considerados un String y no un INT, como nos gustaría y no nos permite cambiarlo.
Captura

Entiendo que es bastante elemental pero andamos perdidos. ¿Nos podrías pasar algún documento que lo explicara bien? Gracias


(Ismael Hasan Romero) #2

Hola David!

Por defecto, Elasticsearch intenta "adivinar" el tipo de datos cuando creamos un índice por primera vez. En este caso, ha decidido que ID1, ID2 e ID3 son de tipo String. Una vez que a un campo se le asigna un tipo en un índice, permanece immutable.

Podemos controlar explícitamente el tipo de cada campo mediante Mappings y Templates. Cuando creamos un índice manualmente podemos hacer el mapping del mismo indicando de qué tipo será cada campo. Los templates sirven para automatizar el proceso: por ejemplo, podemos crear un template que se aplicará a todos los índices filebeat* que creemos en el futuro - aplicando los mappings y settings definidos en dicho template.

En este caso, para los índices ya creados, no se puede cambiar el tipo del campo. Lo que puedes hacer es crear un template para que los futuros índices filebeat* se creen con los mappings que quieres, y entonces utilizar el API de reindex para copiar los índices que ya habías creado a nuevos índices (que aplicarán el nuevo template al ser creados).

Finalmente, un consejo: cuando en Kibana tenemos un index pattern que cubre varios índices, y algunos de estos índices declaran un campo como un cierto tipo mientras que otros índices como un tipo diferente, se produce un conflicto (que verás en la página de index patterns). De ahí la recomendación de reindexar los índices que todavía declaren ese campo como String.

Un saludo!
Ismael.


(system) #3

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