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

时间:2014-04-08 12:27:00

标签: logstash

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

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

我尝试使用以下设置播放所有数据:

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

启动logstash时有没有办法跳过现有数据?

更新

我查看了错误报告,我正在考虑使用logstash提出问题。 我找到了那两个相关的,但它们似乎没有得到解决或在Windows上工作:

2 个答案:

答案 0 :(得分:0)

start_position是指单个日志文件中的数据,因此它不具备任何用途。旧日志文件。

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

http://logstash.net/docs/1.4.0/inputs/file#exclude

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

find ./ -mtime +1 | xargs -n1 gzip

会压缩所有超过1天的文件。

您可能还需要考虑管理Redis使用的密钥字符串。这将允许您从Redis移动密钥,以便他们不会进入Elasticsearch

http://www.nightbluefruit.com/blog/2014/03/managing-logstash-with-the-redis-client/

答案 1 :(得分:0)

您可以尝试将sincedb_path指向 / dev / null

例如:

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