一尘不染

Logstash无法读取文件输入

elasticsearch

我对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 { }为以下内容,它将顺利发送所有输入数据:

input {
  stdin{ }
}
output {
  elasticsearch {
    protocol => "http"
    host => "10.35.143.93"
    port => "9200"
    index => "latestindex"
  }
}

我不明白我要去哪里错了。有人可以看看这个吗?


阅读 901

收藏
2020-06-22

共1个答案

一尘不染

您应该在文件部分下设置start_position:

start_position => "beginning"

默认为结束,因此不会读取文件中的任何现有行,而只会读取新添加的行:

start_position

Value can be any of: "beginning", "end"
Default value is "end"

选择Logstash最初从哪个位置开始读取文件:在开头还是结尾。默认行为将文件视为实时流,因此从结尾开始。如果您要导入的旧数据,请将其设置为“开始”

此选项仅修改文件是新文件且之前未出现过的“首次联系”情况。如果以前已经查看过文件,则此选项无效。

2020-06-22