Ubuntu上Filebeat日志收集基于轻量级组件协作,核心原理如下:
- 配置驱动:通过
filebeat.yml
指定日志路径、输出目标(如Elasticsearch/Logstash)等参数。
- 组件协作:
- Prospector(查找器):启动时扫描配置路径,发现日志文件并关联对应
Harvester
。
- Harvester(采集器):逐行读取单个日志文件的新内容,发送至
libbeat
缓冲区。
- libbeat(核心引擎):聚合事件数据,通过配置的输出插件(如Elasticsearch、Logstash)发送至目标系统。
- 状态管理:
- 记录文件读取偏移量至注册表文件(
data/registry
),确保重启后断点续传。
- 通过文件唯一标识符(非仅路径)检测文件是否已处理,避免重复读取。
- 传输保障:
- 支持至少一次交付,未确认的事件会在重启后重新发送。
- 可配置缓冲区、压缩等优化网络传输。
关键流程:配置→启动→Prospector监控→Harvester采集→libbeat聚合→输出至目标系统。