对标题感到抱歉,我的案子真的无法用一句话来解释。
以下是我的情况:
为了使事情更清楚,这是一个粗略的例子。假设我有原始日志:
2017-11-20 14:24:14.011 123 log_number_one
在解析的日志发送到Elasticsearch之前,我想用123
查询我的MongoDB集合,并获取数据data1
和data2
以附加到要发送到Elasticsearch的文档,所以我的最终结果将有类似于:
{
timestamp: 2017-11-20 14:24:14.011,
serial: 123,
data1: "foo",
data2: "bar",
log: log_number_one
}
我认为,实现这一目标的一种简单方法是简单地预处理日志并通过MongoDB运行数字,然后再通过Logstash解析它们。然而,看到我有4GB的日志文件,我希望有一种方法可以一举实现这一目标。我想知道我的边缘情况是否可以用ruby过滤器插件解决,在那里我可以运行一些任意的ruby代码来执行上述操作?
非常感谢任何帮助/建议!
答案 0 :(得分:0)
来自弹性团队成员Christian_Dahlqvist的回答(所有归功于他):
根据MongoDB中记录的数量和数据的总大小(假设它是一个合理的大小数据集),您可以将数据提取到一个文件中,其中每个序列号与字符串表示形式相关联JSON格式的数据。然后,您可以使用translate filter根据序列号使用序列化JSON填充字段,然后使用子过滤器对其进行解析并将其添加到事件中。