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

Elasticsearch针对filebeat配置调优

问题现象

filebeat是性能非常出色的文件采集工具,绝大多数的业务日志可以很容易的在1秒内收集至elasticsearch内,但是个别日志量大的业务日志无法及时收集,按照官方的默认配置通常1核CPU分配给filebeat时,写ES的速率低于1M/S,这里可以针对filebeat.yml配置文件做优化,提高写入ES的性能。

原因分析

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