Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logstash 维护数据读取顺序的日志存储_Logstash - Fatal编程技术网

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

我有一个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 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实例开始,使用一个筛选器线程。