Logstash add_field değeri doldurmuyor, bunun yerine dizindeki sözdizimini kodluyor

0

Soru

3 Giriş dizini kullanarak yeni çıktı dizini oluşturmaya çalışıyorum. Yeni çıktı dizininde, giriş dizininden birkaç belirli alanı doldurmam gerekiyor. Kullanarak yeni bir alan oluşturmaya çalışıyorum add_field.it '%{[index1name][field1ınİndex1]}' gibi sabit kodlama, bunun yerine dizinden değer dolduruyor. Aşağıdaki kodu denedim:

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

En iyi cevabı

0

Bir sprintf başvurusu değiştirilmezse, olay üzerinde alanın bulunmadığını gösterir.

Dizin adı elasticsearch girişi tarafından alan adına eklenmez. (Docınfo seçeneğini etkinleştirirseniz [@metadata] öğesinin bir parçası olarak eklenebilir.) Bu nedenle, okuduğunuz dizindeki belgedeki alanın adı, ihtiyacınız olan dizin adını içermiyorsa

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

Dizin adını [newfieldname] içinde istiyorsanız, örneğin bir başvuru kullanmanız gerekir

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

Teşekkürler @ Badger. cevabınızın üstünde çalışıyor. Ancak giriş eklentimde docınfo => "true" var. Bu yüzden indexname almalı
slj

Dizin adının nasıl kullanılacağını göstermek için yanıt ayarlandı.
Badger

Diğer dillerde

Bu sayfa diğer dillerde

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