u1timate
Published on 2021-06-20 / 254 Visits
0

控制logstash的发送速率

  • 通过调整配置文件logstash.yml中的pipeline.batch.size指令
# pipeline线程数,官方建议是等于CPU内核数
pipeline.workers: 24
# 实际output时的线程数
pipeline.output.workers: 24
# 每次发送的事件数
pipeline.batch.size: 3000
# 发送延时
pipeline.batch.delay: 5
  • 使用filebeat控制
    如果Input是文件的话,可以通过filebeat进行控制
    logstash配置
input{
    beats{
        port => 5044
        type => "eve"
    }
}

filebeat配置
通过设置rate_limit指令,约束每秒的事件个数,从而降低速率,但是该配置会丢掉超过限制速率的事件

# ================================= Processors =================================
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~
  - rate_limit:
      limit: "400/s"