Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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
Ruby Logstash-将数据保存在内存中的输入文件插件_Ruby_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Join_Apache Kafka_Logstash - Fatal编程技术网 elasticsearch,join,apache-kafka,logstash,Ruby,elasticsearch,Join,Apache Kafka,Logstash" /> elasticsearch,join,apache-kafka,logstash,Ruby,elasticsearch,Join,Apache Kafka,Logstash" />

Ruby Logstash-将数据保存在内存中的输入文件插件

Ruby Logstash-将数据保存在内存中的输入文件插件,ruby,elasticsearch,join,apache-kafka,logstash,Ruby,elasticsearch,Join,Apache Kafka,Logstash,我有1-一个单一的CSV文件和2-一个活卡夫卡流。KAFKA stream带来了实时流日志,CSV文件包含元数据记录,在将它们发送到Elastic Search之前,我需要将它们与流日志连接起来 卡夫卡流日志和CSV记录示例: KAFKA log: MachineID: 2424, MachineType: 1, MessageType: 9 CSV record: MachineID: 2424, MachineOwner: JohnDuo 在发送到ES之前,我需要在logstash中生成记

我有1-一个单一的CSV文件和2-一个活卡夫卡流。KAFKA stream带来了实时流日志,CSV文件包含元数据记录,在将它们发送到Elastic Search之前,我需要将它们与流日志连接起来

卡夫卡流日志和CSV记录示例:

KAFKA log: MachineID: 2424, MachineType: 1, MessageType: 9
CSV record: MachineID: 2424, MachineOwner: JohnDuo
在发送到ES之前,我需要在logstash中生成记录:

MachineID: 2424
MachineOwner: JohnDuo
MachineType: 1
MessageType: 9
我想要一个解决方案,或者是一个Ruby或者Logstash插件,或者其他任何东西来读取这个CSV文件一次 把他们带进来,加入Logstash conf文件。我需要保留内容 如果在内存中查找CSV文件,则在每个实时Kafka日志上的CSV查找会降低我的日志存储性能。

尝试此筛选器

你需要这样的东西

filter {
    translate {
        dictionary_path => "/path/to/your/csv/file.csv"
        field => "[MachineId]"
        destination => "[MachineOwner]"
        fallback => "not found"
    }
}
然后,在
文件.csv
中,您将看到以下内容

2424,JohnDuo
2425,AnotherUser
对于具有字段
MachineId
的每个事件,此筛选器将在字典中查找此id,如果找到匹配项,它将使用匹配值创建名为
MachineOwner
的字段,如果未找到匹配项,它将使用值
未找到
创建字段
MachineOwner
,如果不想在不匹配的情况下创建字段,可以删除
回退
选项


当logstash启动时,字典将加载到内存中,并且每300秒重新加载一次,您也可以更改该行为。

如果我的CSV文件有多个字段,如MachineID、MachineOwner、Address、Phone等,我是否可以在一个筛选器中创建多个目标字段