es--基础--2.10.1--部署--Filebeat--介绍

es–基础–2.10.1–部署–Filebeat–介绍


1、介绍

Filebeat 是使用Golang实现的轻量型日志采集器
Filebeat 本质上是一个 agent ,可以安装在各个节点上,根据配置读取对应位置的日志,并上报到相应的日志管理平台上去

1.1、Filebeat 和 logstash 区别

  1. 都是日志采集工具
  2. 消耗资源Filebeat比logstash小
    1. 启动logstash需要消耗500M
    2. 启动Filebeat需要消耗10M

1.2、ELK日志采集方案的常用做法

  • 步骤1:将所有节点的日志内容通过filebeat送到kafka消息队列
  • 步骤2:使用logstash集群读取kafka消息队列内容,根据配置文件进行过滤。
  • 步骤3:将过滤之后的文件输送到elasticsearch中,通过kibana去展示。

2、组成

主要由harvesters和prospector组成

2.1、harvesters

  • 负责读取单个文件的内容,harvesters逐行读取每个文件,并将内容发送到output中。
  • 每个文件都将启动一个harvesters。
  • harvesters负责文件的打开和关闭,这意味着harvesters运行时,文件会保持打开状态。
  • 如果在收集过程中,即使删除了这个文件或者是对文件进行重命名,Filebeat依然会继续对这个文件进行读取,这时候将会一直占用着文件所对应的磁盘空间,直到Harvester关闭。
  • 默认情况下,Filebeat会一直保持文件的开启状态,直到超过配置的close_inactive参数,Filebeat才会把Harvester关闭。

2.1.1、关闭Harvesters会带来的影响

  • file Handler将会被关闭,如果在Harvester关闭之前,读取的文件已经被删除或者重命名,这时候会释放之前被占用的磁盘资源。
  • 当时间到达配置的scanfrequency参数,将会重新启动。
  • 如果在Havester关闭以后,移动或者删除了文件,Havester再次启动时,将会无法收集文件数据。
  • 当需要关闭Harvester的时候,可以通过close*配置项来控制。

2.2、prospector

  • Prospector负责管理Harvsters,并且找到所有需要进行读取的数据源。如果input type配置的是log类型,Prospector将会去配置度路径下查找所有能匹配上的文件,然后为每一个文件创建一个Harvster。
  • 每个Prospector都运行在自己的Go routine里。
  • Filebeat目前支持两种Prospector类型:log和stdin。每个Prospector类型可以在配置文件定义多个log,Prospector将会检查每一个文件是否需要启动Harvster,启动的Harvster是否还在运行,或者是该文件是否被忽略(可以通过配置 ignore_order,进行文件忽略)。如果是在Filebeat运行过程中新创建的文件,只要在Harvster关闭后,文件大小发生了变化,新文件才会被Prospector选择到。

3、工作原理

Filebeat可以保持每个文件的状态,并且频繁地把文件状态从注册表里更新到磁盘。
这里所说的文件状态是用来记录上一次Harvster读取文件时读取到的位置,以保证能把全部的日志数据都读取出来,然后发送给output。如果在某一时刻,作为output的ElasticSearch或者Logstash变成了不可用,Filebeat将会把最后的文件读取位置保存下来,直到output重新可用的时候,快速地恢复文件数据的读取。

在Filebaet运行过程中,每个Prospector的状态信息都会保存在内存里,如果Filebeat出现了重启,完成重启之后,会从注册表文件里恢复重启之前的状态信息,让Filebaet继续从之前已知的位置开始进行数据读取。

Prospector会为每一个找到的文件保持状态信息,因为文件可以进行重命名或者是更改路径,所以文件名和路径不足以用来识别文件,对于Filebeat来说,都是通过实现存储的唯一标识符来判断文件是否之前已经被采集过,如果在你的使用场景中,每天会产生大量的新文件,你将会发现Filebeat的注册表文件会变得非常大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值