Logstash add_field n'est pas le remplissage de la valeur au lieu de cela, il est coder en dur la syntaxe dans l'index

0

La question

Je suis en train de créer de nouveaux indice de la production à l'aide de 3 entrée d'index. Dans la nouvelle sortie de l'index j'ai besoin pour remplir quelques champs à partir d'une entrée d'index. Je suis en train de créer un nouveau champ à l'aide de add_field.il est coder en dur like '%{[index1name][field1inIndex1]} " au lieu de peupler la valeur de l'indice. J'ai essayé le code ci-dessous:

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

La meilleure réponse

0

Si un sprintf de référence n'est pas substitué puis il indique que le champ n'existe pas sur l'événement.

Le nom de l'index n'est pas ajouté au nom du champ par la elasticsearch d'entrée. (Il peut être ajouté comme partie de [@métadonnées] si vous activez la docinfo option.) Donc, à moins que le nom du champ sur le document dans l'index de votre lecture d'contient le nom de l'index à ce que vous avez besoin est

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

Si vous ne voulez que le nom de l'index dans [newfieldname] ensuite, vous devez utiliser une référence, par exemple

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

Merci @Blaireau. au-dessus de votre réponse est de travailler. Mais j'ai docinfo => "true" dans mon entrée plugin. Il devrait donc prendre indexname
slj

Ajusté réponse à montrer comment utiliser le nom de l'index.
Badger

Dans d'autres langues

Cette page est dans d'autres langues

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