-
问题描述:
harvester_limit: 10000
close_inactive: 5m
scan_frequency: 10s
采集10000个小文件,五分钟左右又写入了10000个小文件,此时原先开启的10000个harvester由于超过close_inactive关闭,再开启新的10000个harvester来采集新增的10000个文件,但是几秒之后原先的10000个文件也在请求启动harvester,导致harvester资源不够,报以下错误:
Harvester could not be started on exist file:xxx.1.log, Err: Harvester limit reached -
问题表面原因:
Err: Harvester limit reached
如果配置了input的harvester_limit,如果需要采集的文件数多于harvester_limit,会导致报此错误,从filebeat的角度上看这是个error,但从使用者的角度看更像一个warning。即使filebeat报了这个错误,但仍然会继续尝试为这些文件创建harvester。 -
解决方法:调大harvester_limit的值
-
导致问题的真实原因:
Filebeat使用换行符来检测事件的结束。 如果将行逐渐添加到正在采集的文件中,则在最后一行之后需要换行符,否则Filebeat将不会读取文件的最后一行。由于我采集的1w个文件结尾都没有换行符,filebeat并没有采集完整个文件,registrar中记录的offset只到倒数第二行,当close_inactive超时关闭后,又到了scan_frequency的时间,input去check文件以及registrar中的offset,发现该文件还没采集完,则又会为它启动harvester -
解决方法:在文件末尾加上换行符
filebeat报错:Harvester could not be started on exist file
最新推荐文章于 2024-04-15 03:23:46 发布