使用多行logstash单独的日志解析

时间:2014-10-02 04:53:37

标签: filter multiline logstash

我有一组日志文件,每个文件日志都是针对特定的机器。

我想要实现的是使用multiline{}过滤器来加入每个文件中的多行消息,因为我希望每个文件都有一个@timestamp

日志文件中的示例数据

  

标题

     

描述

     

TEST1

     

测试通过

     

测试结束

 filter {
  multiline {
    pattern => "from_start_line to end of line"
    what => "previous"
    negate => true
  }
}

我只想将日志文件中的所有数据作为单个事件而不使用模式。

非常像告诉logstash在EOF之前制作多行事件。

1 个答案:

答案 0 :(得分:0)

你不能这样做。因为logstash将始终保持监视文件。因此,EOF对它毫无意义。

您可以做的另一种方法是在日志末尾添加一些模式。例如,将log_end添加到每个日志输出的末尾。

title

description

test1

test pass

test end-log_end

然后您可以使用此模式对所有日志进行多行化。

 multiline {
     pattern => "log_end$"
     negate => true
     what => "next"
 }

希望这可以帮到你。