似乎 Logstash 在写入下一个事件之前不会处理最后一个 event/line

Seems Logstash doesn't process the last event/line until the next event is written

我是 logstash 的新手,在实际操作过程中我发现 logstash 不处理日志文件的最后一行。

我的日志文件只有 10 行,我配置了过滤器来处理 one/two 字段并将 json 结果输出到新文件。

所以当 logstash 是 运行 我打开监控文件并在文件末尾添加一行并保存它。什么都没发生。现在我再添加一行,上一个事件显示在输出文件中,下一个事件也是如此。

如何解决此行为?我的 usecase/config 有问题吗?

# The # character at the beginning of a line indicates a comment. Use
# comments to describe your configuration.
input {
    file {
        path => "C:\testing_temp\logstash-test01.log"
        start_position => beginning 
    }
}
# The filter part of this file is commented out to indicate that it is
# optional.
filter {
    grok {
        match => { "message" => "%{IP:clientip} pssc=%{NUMBER:response} cqhm=%{WORD:HTTPRequest}"}
    }
    geoip {
        source => "clientip"
    }
}
output {
    file {
    path => "C:\testing_temp\output.txt"
}
}

请确保在手动插入时在行尾添加换行符。 Logstash 会在检测到该行是 "finished".

时立即获取您的更改

你的用例没问题。如果您添加:

stdout { codec => rubydebug }

在您的输出部分,您将立即在您的控制台中看到事件(这对 debugging/testing 来说很好)。