我试图用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被忽略。
提前感谢您的帮助。
答案 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