Logstash add_field ไม่ populating ค่าแทนที่จะมันคือ hardcoding รูปแบบการสั่งงานในดัชนี

0

คำถาม

ฉันกำลังพยายามสร้างใหม่แสดงผลดัชนีการใช้ 3 ข้อมูลดัชนี ในนิวออกดัชนีฉันต้อง populate ไม่กี่เจาะจงช่องข้อมูลจากข้อมูลดัชนี ฉันกำลังพยายามสร้างใหม่สนามโดยใช้ add_field.มันเป็น hardcoding เหมือน'%{[index1name][field1inIndex1]}'แทนที่จะเป็น populating ค่าจากดัชนี ฉันพยายามด้านล่างรหัส:

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

คำตอบที่ดีที่สุด

0

ถ้าเป็น sprintf อ้างอิงคือไม่ substituted แล้วมันบ่งชี้ว่าสนามยังไม่มีอยู่ในเหตุการณ์.

ดัชนีไม่ได้ชื่อกเพิ่มเข้ากับสนามชื่อโดยที่ elasticsearch อนำข้อมูลเข้าได้ (มันอาจจะถูกเพิ่มเป็นส่วนหนึ่ง[@ข้อมูลกำกับภาพถ้าคุณเปิดใช้การ docinfo งเลือก) ดังนั้นนอกจากชื่อของสนามในเอกสารในดัชนีของคุณกำลังอ่านจากบรรจุชื่อของดัชนีที่คุณต้องการคือ

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

ถ้าคุณต้องการทำดัชนีชื่ออยู่ใน[newfieldname]งั้นคุณต้องใช้การอ้างอิงกับมันตัวอย่างเช่น

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

ขอบคุณ@แบดเจอ. อยู่เหนือคำตอบของคุณมันทำงานอยู่ แต่ฉันมี docinfo=>"จริง"ในของโปรแกรมเสริมนำเข้าข้อมูล. ดังนั้นมันควรจะเอา indexname
slj

ปรับคำตอบให้แสดงวิธีใช้ดัชนีอกชื่อมา
Badger

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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