无法使用logstash输入“file”解析多个文件

时间:2014-03-30 17:08:36

标签: windows logstash

我试图用Windows上的logstash解析一个文件夹,但是我有一些奇怪的结果。

我有一个文件samplea.log,内容如下:

1
2
3 
4 
5 

我有一个文件sampleb.log,内容如下:

6
7 
8 
9 
10

这是我的配置文件:

input {
  file  {
    path=> "C:/monitoring/samples/*.log"
  }
}
output { 
  stdout { debug => "true" }
  elasticsearch {    
    protocol => "transport"
    host => "127.0.0.1"
  }  
}

由于未知原因,我的控制台上显示的事件是6,7,8,9,并且相同的事件存储在elasticsearch中。我的文件sampleb的最后一行被忽略,整个文件samplea被忽略。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

为了解决这个问题,我用filewatch-0.6.1 gem修补了原始logstash(1.4.2)发行版(原文是filewatch-0.5.1)

答案 1 :(得分:0)

Logstash正在使用返回字符分隔行。确保在最后一行按Enter键。

答案 2 :(得分:0)

已知错误,内部库使用inode跟踪文件。在Windows上,库使用一个始终返回0的函数。在您的情况下,我认为logstash读取simpleb.log,然后从索引6读取simplea.log,它是文件结尾。 在此处跟踪错误:https://github.com/logstash-plugins/logstash-input-file/issues/2