Logstash add_field não preencher de valor, em vez disso, é a codificação de sintaxe em índice

0

Pergunta

Estou tentando criar uma nova saída índice usando 3 entrada de índice. No novo índice de produção eu preciso preencher alguns campos específicos de entrada de índice. Eu estou tentando criar novo campo usando add_field.é codificar like '%{[index1name][field1inIndex1]}', em vez de preencher o valor do índice. Eu tentei o código abaixo:

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

Melhor resposta

0

Se um sprintf referência não é substituído, em seguida, ele indica que o campo não existe no evento.

O nome de índice não é adicionado ao nome do campo, elasticsearch de entrada. (Pode ser adicionado como parte do [@metadados] se você habilitar o docinfo opção.) Assim, a menos que o nome do campo no documento no índice de seu estiver a ler a partir contém o nome do índice que você precisa é de

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

Se você deseja que o nome do índice em [newfieldname] então você tem que usar uma referência a ele, por exemplo

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

Obrigado @Texugo. acima a sua resposta está trabalhando. Mas eu tenho docinfo => "true" na minha entrada plugin. Por isso deve levar indexname
slj

Ajustado resposta para mostrar como usar o nome de índice.
Badger

Em outros idiomas

Esta página está em outros idiomas

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