温馨提示×

centos filebeat怎么限速

小樊
47
2026-09-11 20:54:14
栏目: 智能运维

在 CentOS 上运行的 Filebeat 本身没有直接的“带宽限速”参数,但可以通过 限流(限率)+ 系统层限速 两种方式实现“限速”效果。下面按常见场景说明。


一、Filebeat 层面限流(推荐先这样)

1️⃣ 限制发送速率(每秒事件数)

filebeat.yml 中:

output.elasticsearch:
  hosts: ["http://es:9200"]
  bulk_max_size: 50
  worker: 1

queue.mem:
  events: 200
  flush.min_events: 10
  flush.timeout: 1s

或通过 限流处理器(Filebeat ≥ 7.x):

processors:
  - rate_limit:
      limit: 100          # 每秒最多 100 条
      burst: 200          # 突发允许 200 条

✅ 适合:

  • 控制 ES / Logstash 写入压力
  • 防止打爆后端

2️⃣ 控制文件读取速度

filebeat.inputs:
  - type: log
    paths:
      - /var/log/*.log
    harvester_buffer_size: 16384
    scan_frequency: 10s
  • scan_frequency 调大 → 减少扫描频率
  • 不能精确限速,但能降低 IO

二、CentOS 系统层限速(真正“带宽限速”)

如果目标是 网络带宽限速(如 Filebeat → ES 跨机房):

方案 1:用 tc(内核级限速)

限制 Filebeat 出口带宽(示例:限制到 5Mbps)

# 假设网卡是 eth0
tc qdisc add dev eth0 root tbf rate 5mbit burst 32kbit latency 400ms

查看:

tc qdisc show dev eth0

删除:

tc qdisc del dev eth0 root

✅ 优点:精确
❌ 缺点:影响该网卡所有流量


方案 2:用 wondershaper(简单)

yum install -y epel-release
yum install -y wondershaper

wondershaper eth0 5000 5000   # 下行/上行 5Mbps

关闭:

wondershaper clear eth0

方案 3:用 systemd 限制(不推荐网络限速)

只能限制 CPU / IO,不能限网络带宽


三、常见组合方案(生产推荐)

Filebeat 限率 + 网络 tc 限速

  • Filebeat:rate_limit
  • CentOS:tc 限制出口带宽

例如:

processors:
  - rate_limit:
      limit: 200
tc qdisc add dev eth0 root tbf rate 10mbit burst 64kbit latency 500ms

四、确认 Filebeat 版本

filebeat version

不同版本配置略有差异(7.x / 8.x)


如果你能告诉我:

  • Filebeat 版本
  • 限速目标(ES?Logstash?Kafka?)
  • 想限的是 事件数 / 带宽 / CPU

我可以给你一套可直接用的配置

0