Logstash 文件输入:忽略任何以前的数据

Logstash 文件输入:忽略任何以前的数据,logstash,Logstash,我正在尝试使用logstash从我的日志中提取度量,然后用statsdb发送这些度量 因为statsdb发送实时数据,所以读取旧日志并发送它们是没有意义的。因此,当它重新启动时,我不需要logstash来读取所有现有的和可用的数据。我只想让它处理附加到文件中的内容 我尝试使用设置,但在以下情况下,它仍会读取所有数据: input { file { path => "./dbg*.log" sincedb_path => "" start_

我正在尝试使用logstash从我的日志中提取度量,然后用statsdb发送这些度量

因为statsdb发送实时数据,所以读取旧日志并发送它们是没有意义的。因此,当它重新启动时,我不需要logstash来读取所有现有的和可用的数据。我只想让它处理附加到文件中的内容

我尝试使用设置,但在以下情况下,它仍会读取所有数据:

input { 
  file
  {
      path => "./dbg*.log"
      sincedb_path => ""
      start_position => "end"
  }
}
启动日志存储时是否有跳过现有数据的方法

更新:

我看过错误报告,我正在考虑向logstash提出一个问题。 我发现这两个是相关的,但它们似乎没有得到解决或在windows上工作:


起始位置是指单个日志文件中的数据,因此它没有任何用途。旧的日志文件

如果日志文件具有基于日期的命名格式,则应该能够使用exclude参数和通配符模式将其从日志存储中排除

如果文件没有命名模式,也可以只压缩旧文件,然后排除*.gz

find ./ -mtime +1 | xargs -n1 gzip
将压缩所有早于1天的文件

您还可以考虑管理ReDIS使用的密钥字符串。这将允许您从Redis移动关键点,以便它们不会进入Elasticsearch


您可以尝试将sincedb_路径指向/dev/null

例如:

input { 
    file
    {
        path => "./dbg*.log"
        sincedb_path => "/dev/null"
        start_position => "end"
    }
}

但是第一个选项意味着您必须每天更改logstash参数文件。如果在生成日志后开始日志存储,您仍然需要处理一些旧数据。我对用户问题的理解是,这是一个一次性要求,即他们希望从某个日期开始日志存储,并忽略该日期之前的数据。一旦logstash处理了一个特定的日志,它就不会再检查它了,所以不需要每天更改参数。我们只希望logstash在每次启动时只关注最新的数据。您也可以告诉logstash排除一些文件,但它仍然会读取包含的文件中的旧数据。只需在启动logstash之前将启动脚本修改为gzip任何早于1天的文件,然后对*.gz进行排除。那一天的旧数据呢?