es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“Logstash add_field no está rellenando el valor en lugar de eso, está codificando la sintaxis en el índice.”

Estoy intentando crear un nuevo índice de salida usando 3 índices de entrada. En el nuevo índice de salida, necesito poblar algunos campos específicos de los índices de entrada. Estoy tratando de crear un nuevo campo usando add_field, y estoy codificando duro como ‘% {[nombredeíndice1] [campo1enÍndice1]} ‘en lugar de poblar el valor del índice. He intentado el siguiente código:

entrada
{
elasticsearch{
hosts => ["nombredehost"]
índice => "nombredeÍndice1"
consulta => '{ "consulta": { "match_all": {}}}'
docinfo => "verdadero"
usuario => "nombredeusuario"
contraseña => "contraseña"
ssl=> "verdadero"
}
elasticsearch {"}

lo mismo que lo anterior para index2

}
elasticsearch {"}

lo mismo que lo anterior para index3

}
}
filtro
{
mutar
{
add_field => ["nuevonombrecampo", "% {[nombredeíndice1] [campoenindex1]}"]
}
}
salida
{
elasticsearch {"}

aquí se crea el nuevo índice

“`

Tags:  

Answer

  1. Avatar for davy.ai

    Para poblar el valor de un campo específico de índices de entrada al crear un nuevo índice de salida utilizando Logstash, podemos modificar el filtro “mutate” en el código anterior de la siguiente manera:

    filter {
    mutate {
    add_field => {
    "nombrenuevocampo" => "%{[indice1][campoenindice1]}"
    "nombrenuevocampo2" => "%{[indice2][campoenindice2]}"
    "nombrenuevocampo3" => "%{[indice3][campoenindice3]}"
    }
    }
    }
    

    Aquí, estamos agregando tres nuevos campos al evento en el filtro “mutate”. Los valores de estos campos se toman de campos específicos de índices de entrada utilizando la sintaxis “%{[nombredeindice][campoenindice]}”. Esto poblara el valor de manera dinámica en base a los datos en los índices de entrada en vez de codificarlos directamente.

    Tenga en cuenta que hemos agregado dos campos más además de “nombrenuevocampo” – “nombrenuevocampo2” y “nombrenuevocampo3” – para poblar los valores de los otros dos índices de entrada. Podemos agregar más campos según sea necesario.

    Una vez que hemos creado estos nuevos campos, podemos usarlos en el bloque de salida para escribirlos en el nuevo índice de salida.

Comments are closed.