我目前有一種情況,logstash 從 azure 事件中心提取 JSON 陣列,我需要將其拆分為多個事件。
我從事件中心獲得的日志如下所示:
{"records": [{JSON LOG},{JSON LOG},{JSON LOG},...,{JSON LOG}]}
我嘗試過使用 split 和 json 過濾器,但我似乎無法讓它作業。我基本上想拆分陣列,以便logstash將記錄中的每個JSON日志作為一個單獨的事件發送到彈性,決議為json。
我還需要將單個 JSON 日志重命名/決議為 ECS,因此目前認為我需要將記錄決議為 json,然后在發送到彈性之前執行一些 mutate rename 過濾器之前將輸出決議為 json,除非這樣做更容易在logstash中決議為JSON,使用彈性索引管道決議到ECS。
我當前的過濾器部分是:
filter {
#Split results into individual events
json {
source => "message"
}
#add a target_index field for the final index to send to
mutate {
replace => [ "[@metadata][target_index]", "logs-eventhub" ]
}
}
誰能提供一些關于如何在logstash中進行多個json決議的見解,以便我將它自己的事件中的每條記錄決議為JSON。
uj5u.com熱心網友回復:
如果輸入決議資料,JSON,你并不需要一個json過濾器,你只需要使用的split過濾器是這樣的:
filter {
#Split results into individual events
split {
source => "records"
}
#add a target_index field for the final index to send to
mutate {
replace => [ "[@metadata][target_index]", "logs-eventhub" ]
}
}
什么split過濾器將要做的就是克隆你的原始事件,拆分records陣列,并且每個子記錄放入原始事件的克隆。
試試看!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/408446.html
標籤:
上一篇:如何在elasticsearch中比較同一檔案中的兩個日期欄位
下一篇:彈性停止分析器和模糊搜索問題
