我有一组日志文件,每个文件日志都是针对特定的机器。
我想要实现的是使用multiline{}
过滤器来加入每个文件中的多行消息,因为我希望每个文件都有一个@timestamp
。
日志文件中的示例数据
标题
描述
TEST1
测试通过
测试结束
filter {
multiline {
pattern => "from_start_line to end of line"
what => "previous"
negate => true
}
}
我只想将日志文件中的所有数据作为单个事件而不使用模式。
非常像告诉logstash在EOF
之前制作多行事件。
答案 0 :(得分:0)
你不能这样做。因为logstash将始终保持监视文件。因此,EOF对它毫无意义。
您可以做的另一种方法是在日志末尾添加一些模式。例如,将log_end
添加到每个日志输出的末尾。
title
description
test1
test pass
test end-log_end
然后您可以使用此模式对所有日志进行多行化。
multiline {
pattern => "log_end$"
negate => true
what => "next"
}
希望这可以帮到你。