簡體   English   中英

logstash 配置循環遍歷字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM