Logstash 维护数据读取顺序的日志存储
我有一个logstash实例并从多个文件中读取数据。我希望保持Elasticsearch中数据更新的顺序,因为_id字段是键 因此,如果输入文件中有两条记录具有相同的密钥,则必须按顺序更新 如何从logstash中的源强制执行排序Logstash 维护数据读取顺序的日志存储,logstash,Logstash,我有一个logstash实例并从多个文件中读取数据。我希望保持Elasticsearch中数据更新的顺序,因为_id字段是键 因此,如果输入文件中有两条记录具有相同的密钥,则必须按顺序更新 如何从logstash中的源强制执行排序 Input file 1: Key = A1 , Data = abc , time=5:51 PM Key = B1 , Data = efg , time=5:52 PM Key = C1 , Data = hij , time=5:53 PM Input fi
Input file 1:
Key = A1 , Data = abc , time=5:51 PM
Key = B1 , Data = efg , time=5:52 PM
Key = C1 , Data = hij , time=5:53 PM
Input file 2:
Key = A1 , Data = klm, time=5:50 PM
这将由logstash中的两个线程读取
如果有两个过滤器线程格式化数据
输出转到具有_id:
output {
elasticsearch {
embedded => true
index => "samples6"
index_type => "sample"
document_id => "%{Key}"
}
}
如何确保Key=A1具有Data=abc而不是“klm”。如果需要按顺序处理的数据是从不同的文件读取的,则无法做到这一点,因为Logstash不维护有序的事件队列。如果您有多个筛选器工作程序(即,使用大于一个的
-w
/--filterworkers
启动日志存储),即使您从单个文件读取,也没有订单保证
你得自己写点东西才能订对。可能有用。您有什么代码可以给我们看吗?或者你正在用什么来做这件事的一个例子?在尝试之前,我正在寻找架构的可行性。如果筛选器中的多个线程无法在日志存储中保持顺序,我必须编写一些自定义内容。无论分配了多少个筛选器线程,文件中的数据都将在日志存储中按顺序处理。不,如果您希望文件中的内容按顺序处理,则只需要一个筛选器工作程序。我会澄清的,谢谢。可能是,我将从每个文件/rdbms调用多个logstash实例开始,使用一个筛选器线程。