Organizacion de los filtros de logstash para filtros propios

Hola buenas, tengo la siguiente configuracion de los filtros:


vale hasta ahi perfecto porque kibana me funciona perfectamente pero lo que quiero es crear un filtro que me recoja los siguientes datos creado con el grok debugger en kibana:


no tengo ni idea si tengo que añadirle un archivo nuevo a los filtroas o modificar algo en algun archivo para que solo salgan esos parámetros...
Seria de gran ayuda porfavor!!!! Gracias

Hola @cristianaxion
¿Podrías pasar el contenido del campo "message" de uno de tus logs?
Gracias

Ahi lo llevas
image

Saludos @cristianaxion
Si entendí bien, lo que quieres es sacar los campos error_message, tiempo y host para tus indices, cierto?
Si es así debes hacerlo usando expresiones regulares en un filtro de tu logstash, por ejemplo, en tu caso para sacar el campo tiempo es de la siguiente forma:

filter{
grok {
match => [
"message",
"(?< fecha>[A-Za-z]+ [0-9]+ [0-9]+:[0-9]+:[0-9]+)"
]
}
}

Nota: quita el espacio entre el símbolo < y la palabra fecha.
Si es esto lo que quieres y necesitas ayuda para sacar los otros dos campos házmelo saber.

Si, por favor necesito los otros dos campos para poder hacer el filtro entero...Otra pregunta tengo una archivo json creado con los campos anteriormente enseñados, necesito pornerlo en la slaidas para que el filtro coja correctamente los datos o no hace falta? ya solo con los filtros se filtra correctamente...Te adjunto mi archivo de logstash entero y mi json creado por si hace falta que lo veas.Muchisimas Gracias


Yo no he usado nunca el archivo json con los campos puesto que ya le estas indicando el campo en la expresión regular (como puedes ver en la que te he enviado pone el campo fecha) yo creo que únicamente con la transformación en json ( stdout {codec => "json"}) es suficiente.
Ok, dame un momento para sacar la expresión regular de los otros dos campos, en cuanto los tenga te los paso.

Okey borro el campo path para que conecte con el archivo creado y dejo solo el campo
(stdout { códec => "json"}), espero tu respuesta para los otros filtros.Gracias

Hola de nuevo @cristianaxion
Ya tengo las expresiones regulares de los otros campos, deberían funcionar.
Campo host:

grok {
match => [
"message",
":\d\d\s(?< host>([^\s]*))"
]
}

Campo error_message:

grok {
match => [
"message",
"localhost\s|\d+[.]\d+[.]\d+[.]\d+\s(?<error_message>([^^]*))"
]
}

De nuevo quita los espacios despues del <.
No he trabajado mucho con expresiones regulares pero ayudándome de la pagina https://regex101.com/ he comprobado que el campo lo sacan bien. De todas formas comprueba que te funcionan porque yo no puedo comprobarlo con un logstash ni un ES reales.

Alguna manera de que el archivo esta correctamente o comando para ver si la configuración esta bien...esq se me reinicia solo el logstash y no hay manera de ver si los datos puestos estan correctamente...El filtro ya esta aplicado

No, simplemente si logstash se reinicia y se mantiene encendido es que logstash reconoce bien la sintaxis, luego hay que ver si aparecen los campos en elasticsearch. Para ello tienes que actualizar la lista de campos de tu index pattern en kibana, te paso una captura:

He cojido un kibana diferente en el cual se conecta correctamente para probarlo y esta corriendo correctamente pero cuando actualizo no me aparecen los campos añadidos...Refresco y en mi index pattern pero no me aparece nada, he creado un index nuevo para ver si me coje correctamemte los datos y me sigue cojiendo los datos antiguos...


Prueba una cosa, haz distintos grok no uses uno para los tres campos. Te paso una captura de mi filtro para que veas a lo que me refiero:


Luego reinicia logstash y refresca la lista de campos en kibana a ver si te aparecen.

He probado esa cosa y me sigue sin salir te muestro los archivos de configuración de este logstash y los filtros que aparecen:


En este kibana he creado tres archivos de logstash y los he separado:
image
Aqui te muestro la configuracion dentro de los archivos en el cual se muestra lo visto anteriormente con los filtros que me has indicado:

Y aqui lo que me arroja los logs de logstash:

Aver si asi se te ocurre porque no puede ir

Estoy dándole vueltas porque hay algo que se nos está escapando.
Los archivos de configuración tienen buena pinta, ademas logstash no se queja así que no creo que sea el problema.
El error de "Mapping conflict" de kibana ya te salia antes de añadir el filtro?
Mándame un pantallazo de un index del campo message en kibana como la que te muestro yo:


Mientras voy a intentar hacerme un filtro similar y a probarlo en mi entorno.

El error de maping confclit me daba desde el principio porque con los filtros correctos funciona todo menos los mapas porque daban error y lo he preguntado en otro foro y no me han contestado....Te paso el campo message con los campos que te dije:

Hola buenas has podido realizar el filtro de prueba y probarlo en tu entorno??
Gracias, un saludo

Saludos @cristianaxion
Lamento no haber podido ayudarte estos días he estado muy ocupado. Si sigues necesitando ayuda con este tema dímelo por favor y probaré cosas en mi entorno. Gracias

Si, porfvaor he probado varias soluciones pero ninguna sin resultados, me seria de gran ayuda. Un saludo y gracias

Vale esto creo que es lo que buscas, como ves están tres campos, lo que no se es si quieres quitar los campos por defecto que pone Elasticsearch.


Por cierto, el campo host, al ser un campo que también agrega Elastic se mete el nombre de la maquina y del log, te recomiendo cambiar de nombre ya sea poner la primera en mayúscula o algo así.
Dime lo que prefieres y te digo como hacerlo.

Claro solo necesito los tres campos que son fecha, error_message , y host lo demas por defecto deberia de quitarlo porque no me interesan de donde vienen esos campos, lo que no se si es posible???? si es asi porfavor pasame como seria el formato para los filtros que solicito.

Muchisimas gracias por ayuda.Un saludo