filebeat在线上运行,如果缺少一些优化配置,很容易滚雪球,出现一些问题。本文记录一些与filebeat采集本地日志文件的优化配置。
registry文件过大,filebeat重启加载很慢
记录本文时github上依然有一个open的issues,新版本也存在这个加载慢的问题,只能添加参数去优化限制registry大小: https://github.com/elastic/beats/issues/16076
filebeat启动后在恢复registry过程中,不会采集新的文件,加载过程也没有info级别的日志,如果加载时间很长,看起来就像不工作。
优化采集配置
# input.yml
- type: log
enabled: true
scan_frequency: 30s
harvester_limit: 512
ignore_older: 24h
close_removed: true
close_renamed: true
close_inactive: 10m
clean_inactive: 48h
paths:
- /log_path/*/*.json
fields:
topic: log_topic
input.yml 这个配置虽然可以动态加载,但是添加这些优化参数,好像并不会自动生效,需要重启filebeat进程。
如果registry还是需要很长时间去恢复,关闭filebeat进程后清空registry/filebeat文件夹(仅保留meta.json文件),重启filebeat重新采集数据。
【此过程会丢失原来已采集文件的状态(offset信息等),导致文件从头采集,请谨慎操作】
优化filebeat配置
# filebeat.yml
... 此处省略其它常规配置
# registry_flush默认设置为0,每次变更都需要变动registry文件。大量文件需要采集,会造成一定压力。
registry_flush: 10s
# 仅保留必要字段
processors:
- include_fields:
fields: ["message", "fields"]
有些配置参数,本站之前介绍filebeat的文档也有说明,不重复赘述。也可以参考官方文档:
https://www.elastic.co/guide/en/beats/filebeat/7.14/filebeat-input-log.html
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏