Logstash仅从输入中获得一个结果

时间:2018-07-13 09:22:42

标签: elasticsearch logstash

我对Logstash有问题。它只匹配第一次出现。例如。我正在接收这样的数据:

2015.01.01
2017.05.02
2015.08.03
2011.10.24
2010.02.25 

我有过滤器:

    filter{
  grok {
    match => { "message" => "(?<started>%{YEAR}.%{MONTHNUM}.%{MONTHDAY})" }
  }

我想获取所有日期并将其保存在某处。但是在输出中,我只有一个结果:

{
   "message":"2015.01.01\n2017.05.02\n2015.08.03\n2011.10.24\n2010.02.25",
   "host":"127.0.0.1",
   "started":"2015.01.01",       
}

如何告诉logstash / grok获取所有日期?

谢谢!

1 个答案:

答案 0 :(得分:0)

您的输入配置如何以及如何通过http发送数据?

将输入设置为文件时,它可以工作,因为它逐行读取文件,并且每一行只有一个日期。

当您使用http发送它时,它似乎是在一行中发送整个文件,其中的换行符为\n,但是所有内容仅是logstash的一个事件,这就是为什么它只匹配第一个日期的原因找到了。