我正在使用经过的插件来计算时间和聚合插件然后显示它。我将自定义字段添加到经过的过滤器您可以在下面看到它:
add_field => {
"status" => "Status"
"User" => "%{byUser}"
}
一种是静态的,另一种是动态的,随事件而来。在输出logstash时,它只显示静态值而不是动态值..
它为动态显示 %{byUser}。但是对于任务 id 和状态字段来说工作得很好,我得到了正确的值。
知道为什么吗?
多一点代码
elapsed {
unique_id_field => "assetId"
start_tag => "tag1:tag2"
end_tag => "tag3:tag4"
add_field => {
"wasInStatus" => "tag3"
"User" => "%{byUser}"
}
add_tag => ["CustomTag"]
}
grok 输入:
grok {
match => [
"message", "%{TIMESTAMP_ISO8601:timestamp} %{NUMBER:assetId} %{WORD:event}:%{WORD:event1} User:%{USERNAME:byUser}"]
if "CustomTag" in [tags] and "elapsed" in [tags] {
aggregate {
task_id => "%{assetId}"
code => "event.to_hash.merge!(map)"
map_action => "create_or_update"
}
}
问题与:经过的过滤器有关:
new_event_on_match => true/false
在我的管道修复问题中将 new_event_on_match 更改为 false 是真的。但仍然想知道为什么。