文档首页/ 云搜索服务 CSS/ 故障排除/ 访问集群类/ Elasticsearch针对filebeat配置调优
更新时间:2025-09-04 GMT+08:00
分享

Elasticsearch针对filebeat配置调优

问题现象

filebeat是性能非常出色的文件采集工具,绝大多数的业务日志能够在1秒内收集至Elasticsearch集群内,但是个别日志量大的业务日志无法及时收集,按照官方的默认配置通常1核CPU分配给filebeat时,数据写入Elasticsearch的速率低于1M/s,但支持优化“filebeat.yml”配置文件,提高写入集群的性能。

原因分析

“filebeat.yml”的默认配置比较保守,在日志量很大的业务场景,需要修改“filebeat.yml”参数进行调优。

处理步骤

  1. 针对“filebeat.yml”配置文件做参数优化,调整input端配置。
    #根据实际情况调大harvester_buffer_size参数(该参数是指每个harvester监控文件时,使用的buffer大小)。
    harvester_buffer_size:40960000
    #根据实际情况调大filebeat.spool_size参数(该参数是指spooler的大小,一次Publish,上传多少行的日志量)。
    filebeat.spool_size:250000
    #根据实际情况调整 filebeat.idle_timeout参数(该参数是指spooler的超时时间,如果到了超时时间,不论是否到达容量阈值,spooler会清空发送出去)。
    filebeat.idle_timeout:1s
  2. 针对“filebeat.yml”配置文件做参数优化,调整output.elasticsearch端配置。
    #根据实际情况将worker参数调整为跟ES个数一致(该参数是指对应ES的个数,默认1)。
    worker:1
    #根据实际情况调大bulk_max_size参数(该参数是指单个elasticsearch批量API索引请求的最大事件数,默认是50)。
    bulk_max_size:15000
    #根据实际情况调整flush_interval参数(该参数是指新事件两个批量API索引请求之间需要等待的秒数,如果bulk_max_size在该值之前到达,额外的批量索引请求生效)。
    flush_interval:1s

相关文档