如何解决多行日志的顺序不正确
1613635264 host1 AAA 0.11 0.09 0.12 16 13
1613635264 host1 BBB 0.21 0.23 176141
1613635264 host2 AAA 2.08 1.76 1.38 4 3
1613635264 host2 BBB 6.21 0.12 228981
1613635264 host3 AAA 0.58 1.12 1.75 16 0
1613635264 host3 BBB 4.46 0.11 254346
1613635265 host4 AAA 1.07 1.11 1.38 16 4
1613635265 host5 AAA 18.21 17.97 19.19 5 2
1613635265 host4 BBB 3.18 0.40 105858
1613635265 host5 BBB 64.69 1.08 418177
AAA 和 BBB 行不按顺序排列,但时间戳(第一列)对于该对是相同的。
logstash 可以合并这两行吗?
像这样:
{
time: 1613635264,host: host1,metric1: 0.11
metric2: 0.09
metric3: 0.12
metric4: 16
metric5: 13
metric6: 0.21
metric7: 0.23
metric8: 176141
}
我想在 elasticsearch 中插入相同的文档。 这可能吗?
解决方法
我找到了解决方案,我设置了一个唯一的 document_id 来匹配 2 对行,设置 doc_as_upsert=true 和 action=update。
output {
elasticsearch {
hosts => ["localhost:9200"]
doc_as_upsert => "true"
action => "update"
document_id => "%{@timestamp}%{hostname}"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。