Logstash add_field no es llenar de valor en lugar de eso es codificar la sintaxis en el índice

0

Pregunta

Estoy tratando de crear un nuevo índice de salida utilizando 3 entrada de índice. En el nuevo índice de salida tengo que rellenar unos campos específicos de la entrada de índice. Estoy tratando de crear un nuevo campo utilizando add_field.es codificar like '%{[index1name][field1inIndex1]}' en lugar de rellenar el valor de índice. He probado a continuación el código:

input
{
elasticsearch{
hosts => ["hostname"]
index => "index1"
query => '{"query":{"match_all":{}}}'
docinfo => "true"
user => "uname"
password =>"pwd"
ssl=>"true"
}
elasticsearch {
#same like above for index2
}
elasticsearch {
#same like above for index3
}
}    
filter
{
mutate
{
add_field =>["newfieldname","%{[index1][fieldinindex1]}"]
}
}
output 
{
elasticsearch {
#creating new index here
}
}
logstash
2021-11-23 23:11:06
1

Mejor respuesta

0

Si un sprintf referencia no es sustituido, a continuación, se indica que el campo no existe en el evento.

El nombre de índice no se agrega al nombre del campo por el elasticsearch de entrada. (Puede ser agregado como parte de [@metadatos] si habilita la docinfo opción). Así que a menos que el nombre del campo en el documento en el índice de su lectura de contiene el nombre de índice de lo que usted necesita es

mutate { add_field => { "newfieldname" => "%{[fieldinindex1]}" } }

Si desea que el nombre del índice en [newfieldname], a continuación, usted tiene que utilizar una referencia a él, por ejemplo

mutate { add_field => { "newfieldname" => "%{[@metadata][_index]}_%{[fieldinindex1]}" } }
2021-11-24 00:55:23

Gracias @Tejón. por encima de su respuesta está trabajando. Pero tengo docinfo => "true" en mi entrada de plugin. Por lo que debe tomar indexname
slj

Ajustado respuesta a mostrar cómo utilizar el nombre de índice.
Badger

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................