FreezeJ' Blog

filebeat7.14配置优化

2022-09-28

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