ubuntu

filebeat如何处理ubuntu大文件日志

小樊
37
2025-12-09 01:35:03
栏目: 智能运维

Ubuntu 环境下 Filebeat 处理大文件日志的实用方案

一 核心原则与总体思路

二 关键配置示例 filebeat.yml

# Ubuntu 采集大文件日志的推荐实践
filebeat.inputs:
- type: filestream                 # 7.0+ 推荐
  enabled: true
  paths:
    - /var/log/**/*.log
    - /opt/app/logs/*.log
  ignore_older: 72h                 # 忽略超过 72 小时的文件
  scan_frequency: 15s                # 每 15 秒扫描新增/轮转文件
  close_inactive: 5m                # 5 分钟无新内容则关闭文件句柄
  clean_inactive: 72h               # 清理 72 小时前已关闭的状态
  harvester_limit: 1000             # 单输入最大 harvester 数(按主机资源调优)
  # 多行示例(按应用实际调整)
  # multiline.pattern: '^\['
  # multiline.negate: true
  # multiline.match: after
  # multiline.max_lines: 10000

# 减少在 Filebeat 端的处理开销
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  # 如非必须,不在采集端做 heavy parse(grok/json),放到 ES Ingest 或 Logstash

# 可靠性:持久化队列(磁盘缓冲,防止数据丢失)
queue:
  type: persisted
  max_bytes: 1GB
  flush.min_events: 2048
  flush.timeout: 1s

# 输出(按实际选择其一或组合)
output.elasticsearch:
  hosts: ["http://es01:9200","http://es02:9200","http://es03:9200"]
  bulk_max_size: 5000
  compression: gzip
  worker: 3

# 可选:高吞吐或解耦时接入消息队列
# output.kafka:
#   hosts: ["kafka1:9092","kafka2:9092"]
#   topic: "filebeat-logs"
#   codec.json: true
#   worker: 3
#   bulk_max_size: 5000

# 监控 Filebeat 自身
monitoring:
  enabled: true
  elasticsearch:
    hosts: ["http://es01:9200"]

三 系统日志轮转与 Filebeat 协同

/opt/app/logs/*.log {
    daily
    rotate 14
    missingok
    notifempty
    compress
    delaycompress
    copytruncate         # 适用于不支持信号通知的应用
    # postrotate
    #   systemctl reload filebeat >/dev/null 2>&1 || true
    # endscript
}

四 性能与稳定性调优清单

五 快速验证与排错

0
看了该问题的人还看了