2016-08-03 203 views
0

我正在嘗試使用aggregate過濾器合併日誌,並且遇到一些問題。在使用aggregate過濾器之前,我使用了json過濾器來解析日誌的內容。我想用作task_id的字段實際上是嵌套的。我試着用點符號,它失敗:在logstash聚合過濾器中使用嵌套值作爲task_id

if [msg] == "Incoming request" { 
    aggregate { 
    task_id => "%{content.request_id}" 
    code => "map['incoming_content'] = event['content']" 
    } 
}  

爲了證明沒有別的是錯誤的,我試着用頂級域:task_id => "%{clientip}"。在這種情況下,日誌正確合併。

我怎樣才能讓aggregate過濾器基於嵌套值聚合日誌?

回答

1

您需要使用bracket syntax,正如他在官方文檔中所解釋的那樣。

試試這個:

if [msg] == "Incoming request" { 
    aggregate { 
    task_id => "%{[content][request_id]}" 
    code => "map['incoming_content'] = event['content']" 
    } 
}