我正在尝试使用logstash从我的日志中提取指标,然后使用statsdb发送这些指标。
因为statsdb发送“实时数据”,所以没有必要读取旧日志并发送它们。所以我不需要logstash来重新启动时读取所有现有和可用的数据。我只是希望它处理附加到文件的内容。
我尝试使用以下设置播放所有数据:
input {
file
{
path => "./dbg*.log"
sincedb_path => ""
start_position => "end"
}
}
启动logstash时有没有办法跳过现有数据?
更新
我查看了错误报告,我正在考虑使用logstash提出问题。 我找到了那两个相关的,但它们似乎没有得到解决或在Windows上工作:
答案 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"
}
}