2016-08-03 7 views
0

aggregateフィルタを使用してログをマージしようとしましたが、いくつかの問題に直面しています。 aggregateフィルタを使用する前に、私はjsonフィルタを使用してログの内容を解析しました。 task_idとして使用したいフィールドは、実際にネストされています。私は、ドット表記を使用してみました、それが失敗しました:task_id => "%{clientip}"logstash集約フィルタでネストされた値をtask_idとして使用

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

は他に何も間違っていないことを証明したように、私はトップレベルのフィールドで試してみました。この場合、ログは正しくマージされました。

ネストされた値に基づいてログを集計するには、どのようにしてaggregateフィルタを取得できますか?

答えて

1

公式ドキュメントで説明されているように、bracket syntaxを使用する必要があります。

これを試してみてください:

if [msg] == "Incoming request" { 
    aggregate { 
    task_id => "%{[content][request_id]}" 
    code => "map['incoming_content'] = event['content']" 
    } 
}  
関連する問題