Logstash不';如果我不';t定义起始位置

Logstash不';如果我不';t定义起始位置,logstash,Logstash,下面是我的代码。当我试着运行这个管道时。管道正在启动,但未分析日志。我已经删除了位于(data/plugins/inputs/file)的.sincedb文件 但是如果我把 start_position => "beginning" 这很有效。但每次都是从头开始,而不是从哪里开始。如果我输入下面的代码并删除.sincedb文件。它仍然没有解析 start_position => "end" 在第一种情况下,我没有定义start\u posi

下面是我的代码。当我试着运行这个管道时。管道正在启动,但未分析日志。我已经删除了位于(data/plugins/inputs/file)的.sincedb文件

但是如果我把

start_position => "beginning"
这很有效。但每次都是从头开始,而不是从哪里开始。如果我输入下面的代码并删除.sincedb文件。它仍然没有解析

start_position => "end"
在第一种情况下,我没有定义start\u position或定义start\u position=>“end”。它在“成功启动LogstashAPI端点{:port=>9601}”处等待,但这两种情况下我都删除了.sincedb文件。我怎样才能让logstash在它离开的地方继续?
感谢您回答

如文件输入插件文档中所述,开始位置仅在第一次读取文件时才考虑

所以它应该会起作用。使用start_position=>“start”,它应该从第一次开始的位置开始,并从.sincedb文件中写入的最后一个位置继续

此选项仅修改文件不可用的“首次接触”情况 以前未见过的新文件,即没有当前位置的文件 记录在由Logstash读取的sincedb文件中。如果一个文件已经 如前所述,此选项无效,位置已记录 将使用sincedb文件中的

确保logstash已向数据目录写入数据。 还可以尝试缩短sincedb_write_间隔

最后,如文档中所述,sincedb记录可能会过期。 如果您尝试读取许多文件,那么最好使用filebeat读取日志并将其传递给logstash,而不是使用带有sincedb的logstash文件输入插件

Sincedb记录现在可以过期,这意味着 在特定时间段后,旧文件将不会被记住。文件 系统可能需要为新内容重用索引节点。理想情况下,我们会 不使用旧内容的读取位置,但我们没有可靠的方法 检测是否已发生inode重用。这与阅读更相关 在sincedb中跟踪大量文件的模式。牢记 但是,如果记录已过期,则会读取以前看到的文件 再次


你的回答是正确的。谢谢你的回答。如果你喜欢这个问题,请随意投票:)
start_position => "end"