Organizacion de los filtros de logstash para filtros propios

Saludos @cristianaxion
He conseguido quitar todos los campos menos el @timestamp, he intentado hacer que el campo fecha me lo haga de tipo date para que pueda borrar el @timestamp y usar el campo fecha como el campo por defecto para estos indices pero no me lo detecta como date ya que no tiene año.
No puedes hacer que la fecha de los logs incluya el año?
Si no estas seguro de si puedes dime el beats que estas usando para que te genere esos logs a ver si encuentro algo.

El campo timestamp no me importa que se quede esque no encuentro manera de que mis logs de mi maquina cliente de centos 6 muestre la fecha completa asi que con el timestamp no me importa...Los demas campos si me interesan que se muestren con el timestamp. Como los has conseguido el quitar lo campos por defecto y que has puesto en los campos de filter?????

Vale a ver te comento todo el proceso:
primero el filter que yo tengo es el siguiente:

 filter {
    if "prueba" in [tags] {
            grok {
                    break_on_match => false

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

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

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

    }
}

Te explico el filtro: yo uso etiquetas [tags] porque tengo mas logs y es para que no se me mezclen, tu puedes omitir los if. El grok con los match te saca los tres campos que deseas y el remove_field borra los campos que aparecen por defecto (yo he puesto esos y me aparece también el campo tags pero si lo borro no funciona porque yo uso etiquetas, si a ti te aparece alguno mas incluyelo también).
Luego existen unos campos que se denominan meta campo (meta-fields) y que para que no aparezcan no se puede hacer desde el filtro de logstash, hay que hacerlo desde el kibana (estos campos son los que empiezan por un guion bajo como _source, _index, etc...) si te aparecen y quieres quitarlos vas a Advanced Settings en kibana y buscas el siguiente campo y deja unicamente el _source (luego no aparecerá no te preocupes):
image
Después refresca la pagina para que dejen de aparecer y refresca también la lista de campos del index pattern (si te aparece algún error de los meta campos es normal simplemente ignóralo):


Si después de esto ves que no te carga la sección de Discover, refresca la pagina y se arregla.
Y ya lo tendrías, te adjunto una ultima captura para que veas como queda (te recuerdo que yo tengo que dejar el campo tags). Si hay algo que no has entendido o no te funciona dímelo por si se me ha olvidado algo:

Buenos dias, hoy lo he probado y te comento como me ha salido, primero he añadido tu filtro y me va bien pero primero el campo host no aparece nose el porque... Segundo ya he quitado los campo de metaFields que eso ha sido de gran ayuda ahora hay otro problema que no se resolver no se si es por el formato del campo, mira me salen saliendo estos campos por defecto:


Ahora como me dijiste añadi los campos por defecto que quiero hacer desaparacer en remove field pero no desaparecen,por ejemplo el campo "log.file.path" no desaparece sigue saliendo pero probe un campo sin puntos que es el campo "source" y si me desaperece:

Como ves aqui desaparece el campo"source" pero el "log.file.path" sigue apareciendo...
Ya falta nada para terminar por fin y muchas gracias por toda la ayuda.

Solucione el problema de los campos por defecto, no habia que poner nada despues de los puntos ya solo me queda que no se porque el elemento Tags no se elimina y el host no aparece...Te enseño el resultado que llevo:

Vale creo saber la solución a todo esto que me comentas.
Cuando dices que no desaparecen campos como el caso de "log.file.path" supongo que te refieres a que no desaparecen de la columna de Available fields y siguen apareciendo ahí porque en algunos indices antiguos siguen estando antes de que los quitases con el filtro, es decir en los indices nuevos no aparecen (si despliegas alguno veras que esos campos no están) pero en los de hace días si están entonces tienes dos opciones, borrar todos los indices desde el Kibana como te muestro en la imagen o crear un nuevo index pattern que solo vea los indices que se generen a partir de ahora:


Te muestro la imagen de que en Available fields solo me parecen estos campos porque he borrado todos indices anteriores:

Por ultimo el tema de que el campo host no te aparezca yo creo que se debe a que tienes varios campos que empiezan por host. y pueden estar haciendo conflicto con este, yo probaría a cambiarle el nombre aunque sea poner la h mayúscula del siguiente modo en el filtro de logstash (si ves que sigue sin aparecer poniendo solo la h mayúscula pon "equipo" por ejemplo):

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

Eso es todo, como siempre si hay algo que no te quede claro o no te sigue sin funcionar házmelo saber.

Te está dando un error de parseo del grok (es la etiqueta que te esta metiendo en el campo tags).
Muéstrame como tienes actualmente el filtro de logstash por favor.

El problema del host ya esta solucionado, te muestro el filtro:

Pasame la linea completa del remove_field, copiala y pegala en texto.

[ "@version","path","message","type","event","source","offset","tags","log","host","prospector","beat","fileset","input" ]

No me queda claro aun porque te da error de parseo, haz un systemctl status logstash -l y enséñame que te devuelve o enséñame el log de logstash.

Hola buenas, perdona por la tardanza pero tenia un trabajo que resolver...Te paso lo que me pides:
systemctl status logstash -l
● logstash.service - logstash
Loaded: loaded (/etc/systemd/system/logstash.service; enabled; vendor preset: disabled)
Active: active (running) since mié 2019-09-18 15:03:11 CEST; 5 days ago
Main PID: 5176 (java)
Tasks: 38
CGroup: /system.slice/logstash.service
└─5176 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.compile.invokedynamic=true -Djruby.jit.threshold=0 -Djruby.regexp.interruptible=true -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/urandom -cp /usr/share/logstash/logstash-core/lib/jars/animal-sniffer-annotations-1.14.jar:/usr/share/logstash/logstash-core/lib/jars/commons-codec-1.11.jar:/usr/share/logstash/logstash-core/lib/jars/commons-compiler-3.0.8.jar:/usr/share/logstash/logstash-core/lib/jars/error_prone_annotations-2.0.18.jar:/usr/share/logstash/logstash-core/lib/jars/google-java-format-1.1.jar:/usr/share/logstash/logstash-core/lib/jars/gradle-license-report-0.7.1.jar:/usr/share/logstash/logstash-core/lib/jars/guava-22.0.jar:/usr/share/logstash/logstash-core/lib/jars/j2objc-annotations-1.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-annotations-2.9.8.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-core-2.9.8.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-databind-2.9.8.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-dataformat-cbor-2.9.8.jar:/usr/share/logstash/logstash-core/lib/jars/janino-3.0.8.jar:/usr/share/logstash/logstash-core/lib/jars/javassist-3.22.0-GA.jar:/usr/share/logstash/logstash-core/lib/jars/jruby-complete-9.2.7.0.jar:/usr/share/logstash/logstash-core/lib/jars/jsr305-1.3.9.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-api-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-core-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-slf4j-impl-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/logstash-core.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.commands-3.6.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.contenttype-3.4.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.expressions-3.4.300.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.filesystem-1.3.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.jobs-3.5.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.resources-3.7.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.core.runtime-3.7.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.app-1.3.100.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.common-3.6.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.preferences-3.4.1.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.equinox.registry-3.5.101.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.jdt.core-3.10.0.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.osgi-3.7.1.jar:/usr/share/logstash/logstash-core/lib/jars/org.eclipse.text-3.5.101.jar:/usr/share/logstash/logstash-core/lib/jars/slf4j-api-1.7.25.jar org.logstash.Logstash --path.settings /etc/logstash

sep 18 15:04:13 pruebakibana.com logstash[5176]: [2019-09-18T15:04:13,710][INFO ][logstash.outputs.elasticsearch] Using default mapping template
sep 18 15:04:13 pruebakibana.com logstash[5176]: [2019-09-18T15:04:13,719][INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["//10.238.198.145:9200"]}
sep 18 15:04:13 pruebakibana.com logstash[5176]: [2019-09-18T15:04:13,870][INFO ][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"template"=>"logstash-", "version"=>60001, "settings"=>{"index.refresh_interval"=>"5s"}, "mappings"=>{"default"=>{"dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword", "ignore_above"=>256}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date"}, "@version"=>{"type"=>"keyword"}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}}
sep 18 15:04:14 pruebakibana.com logstash[5176]: [2019-09-18T15:04:14,914][INFO ][logstash.inputs.beats ] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
sep 18 15:04:15 pruebakibana.com logstash[5176]: [2019-09-18T15:04:15,586][INFO ][logstash.pipeline ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x4151a360 run>"}
sep 18 15:04:15 pruebakibana.com logstash[5176]: [2019-09-18T15:04:15,776][INFO ][org.logstash.beats.Server] Starting server on port: 5044
sep 18 15:04:16 pruebakibana.com logstash[5176]: [2019-09-18T15:04:16,013][INFO ][filewatch.observingtail ] START, creating Discoverer, Watch with file and sincedb collections
sep 18 15:04:16 pruebakibana.com logstash[5176]: [2019-09-18T15:04:16,015][INFO ][filewatch.observingtail ] START, creating Discoverer, Watch with file and sincedb collections
sep 18 15:04:16 pruebakibana.com logstash[5176]: [2019-09-18T15:04:16,043][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>}
sep 18 15:04:16 pruebakibana.com logstash[5176]: [2019-09-18T15:04:16,673][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}

Yo creo que hay algún campo de los que has añadido al "remove_field" yo probaria a quitar uno por uno para ver cual es el que provoca que en campo tags te aparezcca "_grokparsefailure".
De todas formas creo que puede haber una forma mas sencilla de quitar esos campos pero necesito que me digas que "beats" estas usando para enviar esos logs al logstash

Voy a probar esa solucion ahora te digo....De beats estoy utilizando logstash como beats ademas el campo message no puedo eliminarlo si lo elimino no me lee el campo que añadimos llamado Error_Message..

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