我对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服务器并验证是否正在使用curl查询接收数据。问题是,当输入为时,没有数据被接收file。但是,如果我将输入更改stdin { }为以下内容,它将顺利发送所有输入数据:
file
stdin { }
input { stdin{ } } output { elasticsearch { protocol => "http" host => "10.35.143.93" port => "9200" index => "latestindex" } }
我不明白我要去哪里错了。有人可以看看这个吗?
您应该在文件部分下设置start_position:
start_position => "beginning"
默认为结束,因此不会读取文件中的任何现有行,而只会读取新添加的行:
start_position Value can be any of: "beginning", "end" Default value is "end" 选择Logstash最初从哪个位置开始读取文件:在开头还是结尾。默认行为将文件视为实时流,因此从结尾开始。如果您要导入的旧数据,请将其设置为“开始” 此选项仅修改文件是新文件且之前未出现过的“首次联系”情况。如果以前已经查看过文件,则此选项无效。
start_position
Value can be any of: "beginning", "end" Default value is "end"
选择Logstash最初从哪个位置开始读取文件:在开头还是结尾。默认行为将文件视为实时流,因此从结尾开始。如果您要导入的旧数据,请将其设置为“开始”
此选项仅修改文件是新文件且之前未出现过的“首次联系”情况。如果以前已经查看过文件,则此选项无效。