我在Logstash中有重复的数据
我怎么能删除这个重复?
我的意见是:
输入
input {
file {
path => "/var/log/flask/access*"
type => "flask_access"
max_open_files => 409599
}
stdin{}
}
过滤
文件过滤器是:
filter {
mutate { replace => { "type" => "flask_access" } }
grok {
match => { "message" => "%{FLASKACCESS}" }
}
mutate {
add_field => {
"temp" => "%{uniqueid} %{method}"
}
}
if "Entering" in [api_status] {
aggregate {
task_id => "%{temp}"
code => "map['blockedprocess'] = 2"
map_action => "create"
}
}
if "Entering" in [api_status] or "Leaving" in [api_status]{
aggregate {
task_id => "%{temp}"
code => "map['blockedprocess'] -= 1"
map_action => "update"
}
}
if "End Task" in [api_status] {
aggregate {
task_id => "%{temp}"
code => "event['blockedprocess'] = map['blockedprocess']"
map_action => "update"
end_of_task => true
timeout => 120
}
}
}
同时查看图像,相同的数据日志,我只发送了一个日志请求。
答案 0 :(得分:1)
我解决了它
我在输出部分
中创建一个唯一的ID('document_id')document_id指向我的temp和temp是我项目中唯一的id
我的输出更改为:
output {
elasticsearch {
hosts => ["localhost:9200"]
document_id => "%{temp}"
# sniffing => true
# manage_template => false
# index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
# document_type => "%{[@metadata][type]}"
}
stdout { codec => rubydebug }
}
答案 1 :(得分:0)
在我的本地实验室执行测试时,我刚刚发现 logstash 对其保存在 /etc/logstash/conf.d 目录中的配置文件的数量很敏感。 如果配置文件超过 1 个,那么我们可以看到相同记录的重复项。
因此,尝试从 /etc/logstash/conf.d 目录中删除所有备份配置并重新启动 logstash。