[英]logstash config loop through fields
ruby/logstash noob 在這里使用 ELK 堆棧。
我有一堆字段
[消息][詳細][讀數][值1]
[消息][詳細][讀數][值2]
[消息][詳細][讀數][Value3]
我想在logstash配置中使用ruby循環。
然后我想對每個執行一個簡單的操作,例如將它們從十六進制更改為十進制,例如
event.set('[currField]', event.get('[currField]').to_s.hex);
但我無法使用谷歌找到正確的語法..任何幫助表示贊賞。
我知道字段的名稱,所以最壞的情況是我必須對它們進行硬編碼,但如果可能的話,我想避免這種情況。
編輯:我還沒有測試我的配置,所以我不知道“讀數”是否會是 hash map; 我使用 grok 過濾器在配置中添加值
"(?<[Message][Detail][Readout][Value1]>(?<=0x.{8})([A-F0-9]{2}))",
"(?<[Message][Detail][Readout][Value2]>(?<=0x.{8})([A-F0-9]{2}))"
ETC
偽:
event.get('[Message][Detail][Readout]') each { |k, v|
event[k] = newValue;
}
您將使用 .each 遍歷 [Message][Detail][Readout] hash。 您的偽代碼會將值設置在頂層。 要覆蓋它們,請使用
ruby {
code => '
readout = event.get("[Message][Detail][Readout]")
if readout
readout.each { |k, v|
event.set("[Message][Detail][Readout][#{k}]", v.to_s.hex)
}
end
'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.