我对Logstash有一个奇怪的问题。我提供了一个日志文件作为logstash的输入。配置如下:
input {
file {
type => "apache-access"
path => ["C:\Users\spanguluri\Downloads\logstash\bin\test.log"]
}
}
output {
elasticsearch {
protocol => "http"
host => "10.35.143.93"
port => "9200"
index => "latestindex"
}
}
我正在运行elasticsearch服务器并验证是否正在接收数据
卷曲查询。问题是,当输入为file
时,没有收到任何数据。但是,如果我将输入更改为stdin { }
,则会顺利发送所有输入数据:
input {
stdin{ }
}
output {
elasticsearch {
protocol => "http"
host => "10.35.143.93"
port => "9200"
index => "latestindex"
}
}
我不知道我哪里错了。有人可以看一下吗?
答案 0 :(得分:8)
您应该在文件部分下设置start_position:
start_position => "beginning"
默认为结束,因此无法读取文件中的任何现有行,只读取新添加的行:
START_POSITION
Value can be any of: "beginning", "end" Default value is "end"
选择Logstash最初开始读取文件的位置:开头 或者最后。默认行为处理文件,如实时流和 因此从最后开始。如果您要导入旧数据,请进行设置 这到'开始'
此选项仅修改文件所在的“第一次联系”情况 新的,以前没见过。如果之前已经看过一个文件,那么这个 选项无效。
答案 1 :(得分:1)
除了提供的答案之外,我还必须将路径从c:\ my \ path更改为c:/ my / path,以便它能够读取文件。