日志采集之filebeat和flume

本文介绍了Filebeat(基于6.5版本)和Flume在日志采集方面的区别与应用。Filebeat作为轻量级的日志采集工具,资源消耗小,支持输入、输出配置,并使用inode识别文件,确保数据可靠性。Flume则强调可靠性与可恢复性,支持File和Taildir Source。两者在数据丢失、数据重复、资源占用和系统配置上有不同表现。
摘要由CSDN通过智能技术生成

Filebeat(基于6.5版本)

概述

filebeat的由来

Logstash是ELKElasticSearch、Logstash、Kibana组件中的一个。这三个组件往往是配合使用的ES负责数据的存储和索引,Logstash负责数据采集和过滤转换,Kibana则负责图形界面处理;之后,这三个组件又先后被收购于Elastic.co公司名下

因为logstash是jvm跑的,资源消耗比较大,所以后来作者又用go写了一个功能较少但是资源消耗也小的轻量级logstash-forwarder因为es公司本身还收购了另一个开源项目packetbeat,而这个项目专门就是用go语言的,所以es公司干脆把logstash-forwarder的开发工作也合并到同一个团队,于是新的项目就叫filebeat了。

logstash 和filebeat都具有日志收集功能,filebeat更轻量,占用资源更少。filebeat可以发送到logstash,进一步进行日志清洗和过滤。

filebeat介绍

harvesters采集器

一个采集器的职责是一行行的读取一个文件的内容,并且发送内容到output。(A harvester is responsible for reading the content of a single file. The harvester reads each file, line by line, and sends the content to the output.

 

Inputs

input的职责是管理采集器并且发现所有的资源去读取他们(An input is responsible for managing the harvesters and finding all sources to read from.

当启动时,有1个或多个input去指定位置,为每一个文件启动一个收集器,收集器读取文件内容发送到libbeat,然后聚合event发送到output(When you start Filebeat, it starts one or more inputs that look in the locations you’ve specified for log data. For each log that Filebeat locates, Filebeat starts a harvester. Each harvester reads a single log for new content and sends the new log data to libbeat, which aggregates the events and sends the aggregated data to the output that you’ve configured for Filebeat.

总结:一个filebeat client可以有多个input,当程序启动时,会根据文件目前的读取状态来判断是需要启动harvesterharvester负责文件的打开和关闭,读取文件

 

具体实现

功能图:

流程图:

input

  1. 如何识别一个文件?

当文件重命名和移动时,依然可以读取这个文件。

对于每个input的文件,filebeat通过每个文件的元信息来识别文件,因为文件名和路径可能会改变,不会通过文件名等标识一个文件,filebeat保存文件的唯一标识符来识别一个文件,在Linux系统中,通过inode 存储文件的元信息)来进行识别。

文件句柄如何关闭?

为了实现的这种功能,当没有close_*配置时,会一直保存这个这个文件的hander,磁盘上的空间会保留。

 

Close_* 达到这些情况时,关闭hander。

close_inactive 以最后一次读取的日志时间为起点(即lastoffset),如果超过这个时间日志没有更新,则会关闭句柄。开始时间不是文件的修改时间。如果文件有更新,则在下一次scan时会再次被收集。

close_renamed 被重命名时,关闭句柄。默认是不会关闭的。

Close_removed 被删除时,关闭句柄

Close_eof 读完一个文件就关闭。用于读取存量不会更新的文件。

Close_timeout 一个收割机的生命周期时间

 

clean_* 删除文件的注册表文件信息

Clean_inactive 删除注册表文件。会在非活动期过后删除文件状态,对于每天生成大量新文件的非常有用。

Clean_removed 文件删除时删除文件状态。

 

如果句柄没有关闭,会执行下面三个参数重试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值