即使是不成熟的尝试,也胜于胎死腹中的策略。

关于logstash input file 插件中sincedb维护问题

Logstash | 作者 heyddo | 发布于2018年10月22日 | 阅读数:3160

当前场景:
  采集一个目录下的所有文件(文件较多),此目录中存在删除或者归档的情况
问题描述:
  部分文件(比如当天日志文件)当天采集之后就不会再采集,或者文件被删除,归档,sincedb中的信息会一直保留,导致sincedb文件逐渐变大;
  另外,文件删除之后,inode可能存在复用的情况,file插件根据sincedb中的inode区分文件,inode复用之后会存在文件读取异常的情况。
  sincedb中的信息有没有什么维护的好办法?只能手动删除? 
  大家一起讨论讨论,谢谢。
 
已邀请:

rochy - rochy_he

赞同来自: heyddo

你可以通过配置参数:sincedb_clean_after => "2 weeks" 实现自动清理

如果你不想保存 sincedb,可以使用下面配置:sincedb_path => "/dev/null"

heyddo

赞同来自:

      case multiplier
when "m","min","mins","minute","minutes"
ValidatedStruct.new(numeric * 60, nil)
when "h","hour","hours"
ValidatedStruct.new(numeric * HOURS, nil)
when "d","day","days"
ValidatedStruct.new(numeric * DAYS, nil)
when "w","week","weeks"
ValidatedStruct.new(numeric * 7 * DAYS, nil)
when "ms","msec","msecs"
ValidatedStruct.new(numeric / KILO, nil)
when "us","usec","usecs"
ValidatedStruct.new(numeric / MEGA, nil)
else
ValidatedStruct.new(numeric, nil)
end
文档中的2 weeks,根据上述代码会转成对应的天数,而写成1 minute则会转换成对应的秒数。

xiaoke - http://blog.51cto.com/kexiaoke

赞同来自:

谢邀

要回复问题请先登录注册