在 CentOS 上运行的 Filebeat 本身没有直接的“带宽限速”参数,但可以通过 限流(限率)+ 系统层限速 两种方式实现“限速”效果。下面按常见场景说明。
在 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 条
✅ 适合:
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
harvester_buffer_size: 16384
scan_frequency: 10s
scan_frequency 调大 → 减少扫描频率如果目标是 网络带宽限速(如 Filebeat → ES 跨机房):
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
✅ 优点:精确
❌ 缺点:影响该网卡所有流量
wondershaper(简单)yum install -y epel-release
yum install -y wondershaper
wondershaper eth0 5000 5000 # 下行/上行 5Mbps
关闭:
wondershaper clear eth0
systemd 限制(不推荐网络限速)只能限制 CPU / IO,不能限网络带宽
✅ Filebeat 限率 + 网络 tc 限速
rate_limittc 限制出口带宽例如:
processors:
- rate_limit:
limit: 200
tc qdisc add dev eth0 root tbf rate 10mbit burst 64kbit latency 500ms
filebeat version
不同版本配置略有差异(7.x / 8.x)
如果你能告诉我:
我可以给你一套可直接用的配置。